class A{
public:
virtual void print()
{
cout << "A" << endl;
}
};
class B :public A{
public:
virtual void print()
{
cout << "B" << endl;
}
};
class C :public B{
public:
virtual void print()
{
cout << "C" << endl;
}
};
void print(A a)
{
a.print();
}
int _tmain(int argc, _TCHAR* argv[])
{
A *p1, *p2, *p3;
A a;
B b;
C c;
p1 = &a;
p2 = &b;
p3 = &c;
a.print();
b.print();
c.print();
p1->print();
p2->print();
p3->print();
print(a);
print(b);
print(c);
system("pause");
return 0;
}
public:
virtual void print()
{
cout << "A" << endl;
}
};
class B :public A{
public:
virtual void print()
{
cout << "B" << endl;
}
};
class C :public B{
public:
virtual void print()
{
cout << "C" << endl;
}
};
void print(A a)
{
a.print();
}
int _tmain(int argc, _TCHAR* argv[])
{
A *p1, *p2, *p3;
A a;
B b;
C c;
p1 = &a;
p2 = &b;
p3 = &c;
a.print();
b.print();
c.print();
p1->print();
p2->print();
p3->print();
print(a);
print(b);
print(c);
system("pause");
return 0;
}