内嵌子对象时派生类构造函数与析构函数的调用顺序

来源:互联网 发布:c语言百马百担问题 编辑:程序博客网 时间:2024/05/29 04:06

调用顺序

1.调用基类的构造函数,对基类数据成员初始化。

2,调用子对象构造函数,对子对象数据成员初始化;

3.调用派生类的构造函数,对派生类数据成员初始化。

#include<iostream>using namespace std;class Base{public:Base(int n){i=n;cout<<"constructing  Base class"<<endl;}~Base(){cout<<"destructing   Base class"<<endl;}dispB(){cout<<"i="<<i<<endl;}private:int i;};class Derived:public Base{public:Derived(int y):Base(y),base(y)   //派生类的构造函数。调用基类构造函数和子对象构造函数{cout<<"constructing Derived class"<<endl;}~Derived(){cout<<"destructing Derived class"<<endl;}private:Base base;  //定义子对象base};int main(){Derived der(521);der.dispB();return 0;}