C++中成员变量 父类 子类构造析构顺序

来源:互联网 发布:备份短信软件 编辑:程序博客网 时间:2024/05/29 07:36

c++中对象都是先构造成员变量,再调用自身的构造函数;故父类成员变量首先被构造,然后调用父类的构造函数,再构造子类的成员变量,最后调用子类的构造函数。

对象析构时与构造顺序相反,子类先调用自身的析构函数,再调用子类成员变量的析构函数,再调用父类的析构函数,再析构父类的成员变量。

测试代码如下:


#include <iostream>
using namespace std;

class Test
{
public:
 Test()
 {
  cout<<"this is Basetest construction"<<endl;
 }
 ~Test()
 {
  cout<<"this is Basetest destruction"<<endl;
 }
};

class Test2
{
public:
 Test2()
 {
  cout<<"this is SonTest Construction"<<endl;
 }
 ~Test2()
 {
  cout<<"this is SonTest Destruction"<<endl;
 }
};

class Base
{
public:
 Base()
 {
   cout<<"this is Base construction"<<endl;
 }
 ~Base()
 {
  cout<<"this is Base Destructior"<<endl;
 }
  Test a;
};

class Son:public Base
{
public:
 Son()
 {
  cout<<"this is Son construction"<<endl;
 }
 ~Son()
 {
  cout<<"this is Son Destruction"<<endl;
 }
  Test2 a;
};

int main()
{
 //Base a;
 Son test;
}


0 0
原创粉丝点击