《C++面向对象高效编程(第2版)》——2.28 组合

本节书摘来自异步社区出版社《C++面向对象高效编程(第2版)》一书中的第2章,第2.28节,作者: 【美】Kayshav Dattatri,更多章节内容可以访问云栖社区“异步社区”公众号查看。

2.28 组合

C++面向对象高效编程(第2版)
这是一种聚集形式,有很强的生存期,且部分和整体之间的所有权依赖关系也很强。聚集(容器)的多重性不能超过1个(无共享)。组合可以用三种不同的方式表示,其中一种熟悉的符号就是实心菱形。例如,AirPlane(飞机)对象有一个CockPit(驾驶舱)、 Engine(引擎)、Seats(座椅)等。CockPit对象与AirPlane对象一起被创建(见图2-25),一起被销毁(聚集是不可改变的)。
image

image

图2-28

当多重性(基数)大于1时,可以在创建聚集本身后再创建部分(part),除非在聚集被销毁前,显式移除部分,否则部分会和聚集一起被销毁。一架AirPlane有多个Engine和多个Seat等,而且在AirPlane类对象的生存期内,可以添加或移除Seat。当AirPlane类对象被销毁后,它所包含的所有对象都会被销毁,除非它们已经从AirPlane类对象中移除(例如,座椅可能被移除,复用于另一架飞机中)。在图2-26或图2-27中都表示了组合关系。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值