#include <iostream>
using namespace std;
//轮胎类
class Ctyre {
private:
int radius;
int width;
public:
Ctyre(int r,int w):radius(r),width(w){}
};
//引擎类
class CEngine {
public:
};
//车->封闭类
class CCar {
private:
int price;
Ctyre tyre;
CEngine engine;
public:
CCar(int p,int tr,int tw);
};
CCar::CCar(int p,int tr,int tw):price(p),tyre(tr,tw){
};
int main(int argc, const char * argv[]) {
CCar(20000, 17, 255);
return 0;
}
封闭类构造函数的初始化列表
- 定义封闭类的构造函数时,添加初始化列表:
类名::构造函数(参数表):成员变量1(参数表),成员变量2(参数表)...
调用顺序
- 当封闭类对象生成的时候,
- s1:执行所有成员对象的构造函数
- s2:执行封闭类的构造函数
- 成员对象的构造函数调用顺序
- 和成员对象在类中的说明顺序一致
- 与在成员初始化列表中出现的顺序无关
- 当封闭类的对象消亡时,
- s1:先执行封闭类的析构函数
- s2:执行成员对象的析构函数