#include <vector>
#include <iostream>
using namespace std;
class A
{
public:
virtual void printText()
{
cout << "CLASS A\n";
}
};
class B : public A
{
public:
virtual void printText()
{
cout << "CLASS B\n";
}
};
int main()
{
vector<A*> vec;
vec.push_back(new A());
vec.push_back(new B());
for(vector<A*>::iterator it = vec.begin(); it != vec.end(); it++)
{
cout << "Usuwam: ";
(*it)->printText();
delete (*it);
}
vec.clear();
return 0;
}
I2luY2x1ZGUgPHZlY3Rvcj4KI2luY2x1ZGUgPGlvc3RyZWFtPgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCmNsYXNzIEEKewpwdWJsaWM6CgogICAgdmlydHVhbCB2b2lkIHByaW50VGV4dCgpCiAgICB7CiAgICAgICAgY291dCA8PCAiQ0xBU1MgQVxuIjsKICAgIH0KfTsKCmNsYXNzIEIgOiBwdWJsaWMgQQp7CnB1YmxpYzoKCiAgICB2aXJ0dWFsIHZvaWQgcHJpbnRUZXh0KCkKICAgIHsKICAgICAgICBjb3V0IDw8ICJDTEFTUyBCXG4iOwogICAgfQp9OwoKCmludCBtYWluKCkKewogICAgdmVjdG9yPEEqPiB2ZWM7CiAgICB2ZWMucHVzaF9iYWNrKG5ldyBBKCkpOwogICAgdmVjLnB1c2hfYmFjayhuZXcgQigpKTsKCiAgICBmb3IodmVjdG9yPEEqPjo6aXRlcmF0b3IgaXQgPSB2ZWMuYmVnaW4oKTsgaXQgIT0gdmVjLmVuZCgpOyBpdCsrKQogICAgewogICAgICAgIGNvdXQgPDwgIlVzdXdhbTogIjsKICAgICAgICAoKml0KS0+cHJpbnRUZXh0KCk7CiAgICAgICAgZGVsZXRlICgqaXQpOwogICAgfQogICAgdmVjLmNsZWFyKCk7CiAgICByZXR1cm4gMDsKfQ==