#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;
  }