包含和嵌套
小于 1 分钟
包含和嵌套
(1) 包含
- 简概
- 包含(contaionment)、组合(composition)或层次化(layering)
- 被包含的类也叫组件类
- 使用
- 在类中声明其他类的实例,调用时通过成员运算符访问其他类的接口方法
- 使用场景
- 包含、私有继承,均可实现has-a关系
- 设计模式推荐使用包含(组合)代替继承
(2) 嵌套类(nested class)
嵌套在类中结构声明(类 x 结构、类、枚举)
- 嵌套在类中
- 在类声明中声明结构、类、枚举,被称为被嵌套在类中
- 这里嵌套的不是具体的数据对象,而是模板,不会创建数据对象,而只是指定了可以在类中使用这种类型
- 使用
- 如果在私有部分声明,则只能在这个类使用被声明的类型
- 如果在公有部分声明,则可以用类的外部通过作用域解析运算符使用
- 例如:如果结构体
Node
在Queue
的公有部分声明,则可以在类的外面声明Queue::Node
类型的变量
- 例如:如果结构体