组合 内部类
C++中的组合
形式
1 |
|
- 继承允许你根据基类的实现来定义派生类的实现。这种通过生成派生类的复用通常被称为白箱复用(white-box reuse)。“白箱”是相对可视性而言:在继承方式中,基类的内部细节对子类可见。
- 继承一定程度破坏了基类的封装,基类的改变,对派生类有很大的影响。
- 派生类和基类间的依赖关系很强,耦合度高。
- 优先使用对象组合,而不是类继承。组合的耦合度低,代码维护性好。
继承和组合的理解
形象来说
:public继承是一种is-a的关系。也就是说每个派生类对象都是一个基类对象(例如:同学都是人)。
组合是一种has-a的关系。假设B组合了A,每个B对象中都有一个A对象(例如:书包里有书)。
内部类(Nested Class)
是定义在另一个类的内部的类。内部类的主要目的是将类组织在一起,从而表示一种包含关系或逻辑上的联系。
内部类可以访问其外部类的成员(包括私有成员)
内部类的定义与使用
1 |
|
结果分析:
调用内部类的
innerDisplay()
函数输出”Inner class display function”。通过
innerObj
调用accessOuter()
函数,从而间接调用外部类的display()
函数,输出”Outer class display function”。
组合 内部类
https://weihehe.top/2023/07/03/组合/