前言
讲解C++的封闭类,及构造函数和析构函数的调用顺序。
成员对象:一个类的成员变量是另一个类的对象。
封闭类:包含成员对象的类叫封闭类。
#include<iostream>
using namespace std;
class CTyre{
public:
CTyre(){//构造函数
cout<<"CTyre contructor"<<endl;
}
~CTyre(){//析构函数
cout<<"CTyre contructor"<<endl;
}
};
class CEngine{
public:
CEngine(){
cout<<"CEngine contructor"<<endl;
}
~CEngine(){
cout<<"CEngine contructor"<<endl;
}
};
class CCar{//封闭类
private:
CEngine engine;//成员对象:一个类的成员变量是另一个类的对象。包含成员对象的类叫封闭类。
CTyre tyre;//CCar是封闭类,engine和tyre是成员对象。
public:
CCar(){
cout<<"CCar contructor"<<endl;
}
~CCar(){
cout<<"CCar contructor"<<endl;
}
};
int main(){
CCar car;
return 0;
}
//当封闭类对象生成时,先执行所有成员对象的构造函数,在执行封闭类的构造函数;
//当封闭类的对象消亡时,先执行封闭类的析构函数,在执行成员对象的析构函数。
//析构函数的调用和构造函数的调用顺序相反。
结果: