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

    xiaoxiao2024-07-02  109

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

    2.28 组合

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

    图2-28

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

    相关资源:C 面向对象高效编程第2版 (中文版、带书签) 作者: (美)Kayshav Dattatri
    最新回复(0)