#include<iostream>
using namespace std;
class A
{
public:
void f(){cout<<"class A"<<endl;}
};
class B
{
public:
virtual void f(){cout<<"class B"<<endl;}
};
class C:public A, public B
{
public:
virtual void f(){cout<<"class C"<<endl;}
};
int main()
{
A a, *p1;
B b, *p2;
C c, *p3;
p1 = &a;
p1->f();
p2 = &b;
p2->f();
p1 = &c;
p1->f();
p2 = &c;
p2->f();
p3 = (C*)&a;
p3->f();
cout<<"********"<<endl;
p2 = &c;
p2->f();
return 0;
}