继承中构造函数和析构函数的顺序
归园田居·其三 - 魏晋·陶渊明
种豆南山下,草盛豆苗稀。
晨兴理荒秽,带月荷锄归。
道狭草木长,夕露沾我衣。
衣沾不足惜,但使愿无违。
继承中的构造和析构的顺序如下:
- 先调用父类中的构造函数,再子类。
- 析构的顺序与构造的顺序相反。
code:
#include <iostream>
using namespace std;
class Base
{
public:
Base()
{
cout << "the constructor of the Base" << endl;
}
~Base()
{
cout << "the destructor of the Base" << endl;
}
};
class Son : public Base
{
public:
Son()
{
cout << "the constructor of the Son" << endl;
}
~Son()
{
cout << "the destructor of the Son" << endl;
}
};
void test_con_destructor()
{
Son s1;
}
int main()
{
test_con_destructor();
system("pause");
return 0;
}
result:
the constructor of the Base
the constructor of the Son
the destructor of the Son
the destructor of the Base