#include <iostream> using namespace std; class A { public: A() { cout<<"A Create!"<<endl; } ~A() { cout<<"delete A!"<<endl; } virtual void fun1() { cout<<"A fun1()"<<endl; } void fun2() { cout<<"A fun2()"<<endl; fun1(); } }; class B : public A { public: B() { cout<<"B Create!"<<endl; } ~B() { cout<<"delete B!"<<endl; } virtual void fun1() { cout<<"B fun1()"<<endl; } }; void main() { B testb; testb.fun2(); }
上述代码输出:
A Create!
Create BBBBBBBBBBB
A fun2
B fun1
delete BBBBBBBB
delete A!
Press any key to continue
如果fun1()函数为非虚函数时输出如下:
A Create!
B Create!
A fun2()
A fun1()
delete B!
delete A!
Press any key to continue