封闭类构造函数和析构函数的执行顺序

1.封闭类对象生成时,先执行所有对象成员的构造函数,然后才执行封闭类的构造函数。

2.对象成员的构造函数调用次序和对象成员在类中的说明次序一致,与它们在成员初始化列表中出现的次序无关。

3.当封闭类的对象消亡时,先执行封闭类的析构函数,然后再执行成员对象的析构函数。次序和构造函数的调用次序相反。

封闭类实例

class CTyre {
     public:
	CTyre() {  cout << "CTyre contructor" << endl; }
	~CTyre() { cout << "CTyre destructor" << endl; }
};
class CEngine {
     public:
	CEngine() { cout << "CEngine contructor" << endl; }
	~CEngine() { cout << "CEngine destructor" << endl; }
};
class CCar {
	private:
		CEngine engine;  
		CTyre tyre;
	public:
	CCar( )	{ cout << “CCar contructor” << endl; }
	~CCar() { cout << "CCar destructor" << endl; }
};
int main(){
	CCar car; 
	return 0;
}

输出结果:

CEngine contructor
CTyre contructor
CCar contructor
CCar destructor
CTyre destructor
CEngine destructor

你可能感兴趣的:(C++,c++,开发语言)