/* p150
4.2.1 派生类构造函数和析构函数的执行顺序
通常情况下,当创建派生类对象时,首先执行基类的构造函数,随后再执行派生类的构
造函数;当撤销派生类对象时,则先执行派生类的析构函数,随后再执行基类的析构函数。
下列程序的运行结果,反映了派生类的构造函数和析构函数的执行顺序
*/
// 4.5 派生类构造函数和析构函数的执行顺序举例。
#include<iostream>
using namespace std;
class Base{
public:
Base(){ //基类构造函数
cout<<"Constructing base class -- 基类构造函数 \n";
}
~Base(){ //基类析构函数
cout<<"Destructing base class -- 基类析构函数 \n";
}
};
class Derived:public Base{
public:
Derived(){ //派生类构造函数
cout<<"Constructing derived class -- 派生类构造函数"<<endl;
}
~Derived(){ //派生类析构函数
cout<<"Destructing derived class -- 派生类析构函数"<<endl;
}
};
int main(){
Derived obj;
return 0;
}
/*
从程序运行的结果可以看出:构造函数的调用严格地按照先调用基类的构造函数,后
调用派生类的构造函数的顺序执行。析构函数的调用顺序与构造函数的调用顺序正好相
反,先调用派生类的析构函数,后调用基类的析构函数。
*/
4.5 派生类构造函数和析构函数的执行顺序举例
最新推荐文章于 2023-10-29 14:38:52 发布