文章目录
条款38:通过复合塑模出 has-a 或 “根据某物实现出”
复合(Composition) 是指一个类将其他类的对象作为其成员变量,或者在其实现中使用其他类的对象。
- 在应用域 中,复合表现出 has-a 的关系,例如一个
Car
类可能包含一个Engine
类的对象。 - 在实现域 中,复合表现为 is-implemented-in-terms-of 的关系,例如一个
Stack
类可能使用一个vector
对象实现其存储功能。
与 public 继承 的 is-a
关系不同,复合 更适用于描述类之间的 包含 或 实现 关系。
示例 1:复合的 has-a 关系
class Engine { public: void start() const { std::cout << "Engine started." << std::endl; } }; class Car { public: void start() const { engine.start();