#include <stdio.h>
class A
{
virtual void print() = 0;
};
class B: public A
{
void print()
{
printf("B");
}
};
class C: public A
{
void print()
{
printf("C");
}
};
int main()
{
A *a1 = new B(); //1
A *a2 = new C(); //2
B *b1 = dynamic_cast<B *>(a1); //3
B *b2 = dynamic_cast<B *>(a2); //4
return 0;
}