- 1、本文档共8页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
1
成员对象和封闭类
郭 炜 刘家瑛
成员对象和封闭类
成员对象: 一个类的成员变量是另一个类的对象
包含 成员对象 的类叫封闭类 (Enclosing)
class CTyre { //轮胎类
private:
int radius; //半径
int width; //宽度
public:
CTyre(int r, int w):radius(r), width(w) { }
};
class CEngine { //引擎类
};
2
class CCar { //汽车类 “封闭类”
private:
int price; //价格
CTyre tyre;
CEngine engine;
public:
CCar(int p, int tr, int tw);
};
CCar::CCar(int p, int tr, int w):price(p), tyre(tr, w){
};
int main(){
CCar car(20000,17,225);
return 0;
} 3
如果 CCar 类不定义构造函数, 则
CCar car; // error 编译出错
• 编译器不知道 car.tyre 该如何初始化
• car.engine 的初始化没有问题: 用默认构造函数
生成封闭类对象的语句 明确 “对象中的成员对象”
如何初始化
4
封闭类构造函数的初始化列表
定义封闭类的构造函数时, 添加初始化列表:
类名::构造函数(参数表):成员变量1(参数表), 成员变量2(参数表), …
{
…
}
成员对象初始化列表中的参数
• 任意复杂的表达式
• 函数/ 变量/ 表达式中的函数, 变量有定义
5
调用顺序
当封闭类对象生成时,
• S1: 执行所有成员对象 的构造函数
• S2: 执行 封闭类 的构造函数
成员对象的构造函数调用顺序
• 和成员对象在类中的说明顺序一致
• 与在成员初始化列表中出现的顺序无关
当封闭类的对象消亡时,
• S1: 先执行 封闭类 的析构函数
• S2: 执行 成员对象 的析构函数
析构函数顺序和构造函数的调用顺序相反
6
封闭类例子程序
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; }
};
您可能关注的文档
- 4.3 设置页面及输出打印复习.ppt
- 4.6. 调试器与相关工具.pdf
- 4.7.2用电压表与电流表测导体的电阻.ppt
- 4.9 图形的放大及缩小2.ppt
- 4.9图形的放大及缩小(1.).ppt
- 4.数字示波器使用.ppt
- 4-2、共集电极放大电路与共基极放大电路.ppt
- 4-5岁儿童教育问题.doc
- 4-6Gamma函数及Beta函数_355305907.ppt
- 4MATLAB图形界面制作(GUI)及句柄图形.ppt
- DB36_T1457-2021_华木莲播种育苗技术规程_江西省.pdf
- DB36_T1461-2021_毛竹笋早出培育技术规程_江西省.pdf
- DB36_T1528-2021_泰和竹篙薯浅生槽栽培技术规程_江西省.pdf
- DB36_T1537-2021_老年社会福利院服务规范_江西省.pdf
- DB36_T1460-2021_毛金竹丰产栽培技术规程_江西省.pdf
- DB36_T1882-2023_黑皮冬瓜设施栽培技术规程_江西省.pdf
- 奥太ARCTWIN双电源双丝焊工艺与设备介绍-24.5.pdf
- MAG-Pro Plus MIG/MAG奥太弧焊电源使用说明书 20231116.pdf
- SLJ-B系列焊机专用水冷机使用说明书 20181201 最终版.pdf
- 揭秘肺腺癌细胞中胶原蛋白亚型表达:机制、关联与治疗新径.docx
文档评论(0)