#include <iostream>
using namespace std;
class A{
public:
A()
{
cout<<"construct A"<<endl;
}
A(int a)
{
cout<<"construct int A"<<endl;
}
virtual ~A() //析构函数 必须 声明为 虚函数,才能彻底释放内存空间
{
cout<<"destory A"<<endl;
}
};
class B : public A{
public:
B()
{
cout<<"construct B"<<endl;
}
B(int a):A(a) //构造器调用A中int构造方法
{
cout<<"construct int B"<<endl;
}
~B()
{
cout<<"destory B"<<endl;
}
};
class C:public B{
public:
C()
{
cout<<"construct C"<<endl;
}
~C()
{
cout<<"destory C"<<endl;
}
};
int main()
{
A *p = new C();
delete p;
return 0;
}