1 代码
#include <iostream>
using namespace std;
// 基类
class Base {
public:
Base() { cout << "Base 构造" << endl; }
~Base() { cout << "Base 析构" << endl; }
};
// 派生类(继承自 Base)
class Derived : public Base {
public:
Derived() { cout << "Derived 构造" << endl; }
~Derived() { cout << "Derived 析构" << endl; }
};
// 派生类的派生类(继承自 Derived)
class MostDerived : public Derived {
public:
MostDerived() { cout << "MostDerived 构造" << endl; }
~MostDerived() { cout << "MostDerived 析构" << endl; }
};
int main()
{
cout << "创建对象:" << endl;
MostDerived obj;
cout << "销毁对象(作用域结束):" << endl;
return 0;
}
2 运行结果
创建对象:
Base 构造
Derived 构造
MostDerived 构造
销毁对象(作用域结束):
MostDerived 析构
Derived 析构
Base 析构
3 结论
构造顺序(从基类到最派生类),析构顺序(与构造相反,从最派生类到基类)