#include <iostream>
using namespace std;
struct B { virtual void metoda()=0; };
struct C:public B { virtual void metoda() { cout<<"C"<<endl; } };
struct D:public B { virtual void metoda() { cout<<"D"<<endl; } };
int main()
{
B *tb[]={new C,new D};
for(size_t i=0;i<sizeof(tb)/sizeof(*tb);++i) tb[i]->metoda();
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKc3RydWN0IEIgeyB2aXJ0dWFsIHZvaWQgbWV0b2RhKCk9MDsgfTsKc3RydWN0IEM6cHVibGljIEIgeyB2aXJ0dWFsIHZvaWQgbWV0b2RhKCkgeyBjb3V0PDwiQyI8PGVuZGw7IH0gfTsKc3RydWN0IEQ6cHVibGljIEIgeyB2aXJ0dWFsIHZvaWQgbWV0b2RhKCkgeyBjb3V0PDwiRCI8PGVuZGw7IH0gfTsKCmludCBtYWluKCkKICB7CiAgIEIgKnRiW109e25ldyBDLG5ldyBEfTsKICAgZm9yKHNpemVfdCBpPTA7aTxzaXplb2YodGIpL3NpemVvZigqdGIpOysraSkgdGJbaV0tPm1ldG9kYSgpOwogICByZXR1cm4gMDsKICB9