求分析一段代码
#include <iostream.h>
class A
{
public:
A()
{cout<<"In A cons.\n";}
virtual ~A()
{cout<<"In A des.\n";}
virtual void f1()
{cout<<"In A f1().\n";}
void f2()
{f1();}
};
class B:public A
{
public:
B()
{f1();cout<<"In B cons.\n";}
~B()
{cout<<"In B des.\n";}
};
class C:public B
{
public:
C()
{cout<<"In C cons.\n";}
~C()
{cout<<"In C des.\n";}
void f1()
{cout<<"In C f1().\n";}
};
void main()
{
A *pa=new C;
pa->f2();
delete pa;
}
运行结果
In A cons.
In A f1().
In B cons.
In C cons.
In C f1().
In C des.
In B des.
In A des.