C++回炉之_C++PrimerPlus_第十四章 C++中的代码重用
has-a
组合关系
- 是一种包含关系
- 获得了其所包含对象的实现, 但没有继承其接口 -- 区别于公有继承
- 不能直接使包含对象的方法作为自己的方法
- 使用初始化表的方式初始化所包含的对象 -- 使用成员对象名而非类名初始化
- 成员变量的初始化顺序为它们被声明的顺序,而非初始化表中的数据
- 如果某个成员的初始依赖另一个成员,需要将后者放在它的前面声明
- 如果不使用初始化表,将优先构造成员对象 -- 使用成员对象的默认构造方法
私有继承
- 另一种
has-a
关系
- 另一种
has-a
组合关系
- 是一种包含关系
- 获得了其所包含对象的实现, 但没有继承其接口 -- 区别于公有继承
- 不能直接使包含对象的方法作为自己的方法
- 使用初始化表的方式初始化所包含的对象 -- 使用成员对象名而非类名初始化
- 成员变量的初始化顺序为它们被声明的顺序,而非初始化表中的数据
- 如果某个成员的初始依赖另一个成员,需要将后者放在它的前面声明
- 如果不使用初始化表,将优先构造成员对象 -- 使用成员对象的默认构造方法