代码:
#include <iostream>
using namespace std;
class A
{
public:
virtual void print()
{
cout << "A::print" << endl;
}
~A()
{
cout << "xiegouA" << endl;
}
};
class B : public A
{
public:
virtual void print()
{
cout << "B::print" << endl;
}
};
class C : public B
{
public:
virtual void print()
{
cout << "C::print" << endl;
}
};
void print(A a)
{
a.print();
}
void main()
{
A a, *pa, *pb, *pc;
B b;
C c;
pa = &a;
pb = &b;
pc = &c;
a.print();
b.print();
c.print();
cout << "-----" << endl;
pb->print();
pb->print();
pc->print();
cout << "-----" << endl;
print(a);
print(b);
print(c);
while(1);
}
执行结果: