#include <iostream>
using namespace std;
//这个程序测试了 派生类生存期中,它自己,它的基类和封闭类构造与析构的顺序
//构造顺序为:基类->封闭类->派生类,析构顺序反之,类似堆栈
//尽量写好构造函数,然后在派生类对象,的初始化列表中先后调用其基类的构造函数和其封闭对象的构造函数
class Base
{
public:
int n;
Base(int i):n(i){
cout<<"Base constructor called"<<endl;
};
~Base(){
cout<<"Base destructor called"<<endl;
}
};
class Sealed{
public:
int k;
Sealed(int i):k(i){
cout<<"Sealed constructor called"<<endl;
}
~Sealed(){
cout<<"Sealed destructor called"<<endl;
}
};
class Derived:public Base{
public:
int m;
Sealed s;
Derived(int i,int j):s(i),Base(i),m(j){
cout<<"Derived constructor called"<<endl;
}
~Derived(){
cout<<"Derived destructor called"<<endl;
}
};
int main()
{
{
Derived d(3,5);
}
system("pause");
return 0;
}
派生类生存期中,构造函数与析构函数的调用顺序测试
最新推荐文章于 2024-07-14 15:36:20 发布