第24章总结
本节阅读量:继承允许我们对两个对象之间的关系进行建模。被继承的对象称为父类、基类或超类。进行继承的对象称为子类、派生类。
当派生类继承自基类时,派生类将获取基类的所有成员。
当构造派生类时,首先构造类的基类部分,然后构造派生部分。更详细地说:
- 留出内存(足够用于基类和派生部分)。
- 调用相应的派生类构造函数。
- 使用适当的基类构造函数构造基类对象。如果没有指定基类构造函数,则将使用默认构造函数。
- 派生类的初始化列表初始化派生类的成员。
- 派生类构造函数的主体执行。
- 控制权返回给调用者。
- 析构发生的顺序相反,从最底层的派生类到最上层的基类。
C++有3个访问说明符:public、private和protected。protected允许成员所属的类、友元和派生类访问protected的成员,但不允许外部访问。
类可以public、private或protected地继承另一个类。类几乎总是public继承。
以下是所有访问说明符和继承类型组合的表:
基类中的访问说明符 | public继承时对应的派生类的访问说明符 | private继承时对应的派生类的访问说明符 | protected继承时对应的派生类的访问说明符 |
---|---|---|---|
Public | Public | Private | Protected |
Protected | Protected | Private | Protected |
Private | 不可访问 | 不可访问 | 不可访问 |
派生类可以添加新函数、更改基类中存在的函数在派生类中的工作方式、更改继承成员的访问级别或隐藏功能。
多重继承使派生类能够从多个父类继承成员。你通常应该避免多重继承,除非替代方案会导致更复杂的情况。
