继承中的构造与析构函数
创建一个子类对象时,先执行的是父类构造还是子类构造?
函数结束时,先执行的是父类析构还是子类析构?
创建子类对象时,先加载父类
并调用父类构造
函数结束时,因为子类是后
创建的,根据栈结构的后进先出,子类的析构先调用
父类比子类先创建
,子类析构执行后
就轮到父类析构
下面代码演示
#include<iostream>
#include<string>
using namespace std;
class Base
{
public:
Base()
{
cout << "Base构造" << endl;
}
~Base()
{
cout << "Base析构" << endl;
}
};
class derived :public Base
{
public:
derived()
{
cout << "derived构造" << endl;
}
~derived()
{
cout << "derived析构" << endl;
}
};
void test01()
{
derived d;
}
int main()
{
test01();
return 0;
}
打印结果
Base构造
derived构造
derived析构
Base析构