文章目录
复合(composition)是类型之间的一种关系,当某种类型的对象内含它种类型的对象,便是这种关系。例如:
class Address { ... };
class PhoneNumber { ... };
class Person{
public:
...
private:
std::string name;
Address address;
PhoneNumber voiceNumber;
PhoneNumber faxNumber;
};
条款32:“public继承”带有is-a(是一种)的意义。
复合则是有两个意义:当复合发生于应用域内的对象之间,表现出has-a的关系;当它发生于实现域内则是表现is-implemented-in-terms-of的关系。
总结——216
(1)复合的意义和public继承完全不同。
(2)在应用域,复合意味has-a。在实现域,复合意味is-implemented-in-terms-of。