您的位置:首页 > 其它

4.5 派生类构造函数和析构函数的执行顺序举例

2017-07-15 15:08 197 查看
/* 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;
}

/*
从程序运行的结果可以看出:构造函数的调用严格地按照先调用基类的构造函数,后
调用派生类的构造函数的顺序执行。析构函数的调用顺序与构造函数的调用顺序正好相
反,先调用派生类的析构函数,后调用基类的析构函数。
*/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: