条款38 通过复合塑膜出has-a或"依据某物实现"

结论:

复合的意义和public继承全然不同. (public继承參考:条款32 确定你的public继承塑模出is-a关系
在应用域,复合意味着has-a(有一个).在实现域,复合意味着is-implemented-in-terms-of(依据某物实现出)


复合(composition)是类型之间的一种关系,当某种类型的对象内含其它类型的对象,便是这样的关系:

class Address{...};
class PhoneNumber{...};
class Person{
	...
private:
	std::string name_;
	Address address_;
	PhoneNumber voiceNumber_;
	PhoneNumber faxNumber_;
};
本例中Person就包括了string,Address,PhoneNum合成成分物,它们之间就构成了复合的关系。



原文地址:https://www.cnblogs.com/lcchuguo/p/5129092.html