面试题中常见的C++ 虚拟方法:
#include <iostream.h> class A { public: virtual void print(void) { cout<<"A::print()"<<endl; } };class B:public A { public: virtual void print(void) { cout<<"B::print()"<<endl; }; }; class C:public B{ public: virtual void print(void) { cout<<"C::print()"<<endl; }};void print(A a) { a.print(); } void main(void) { A a, *pa,*pb,*pc; B b; C c; pa=&a; pb=&b; pc=&c; a.print(); b.print(); c.print(); pa->print(); pb->print(); pc->print(); print(a); print(b); print(c); }
执行结果:
A::print()B::print()C::print()A::print()B::print()C::print()A::print()A::print()A::print()