类之间的关系
继承:在已有类的基础上创建新类的过程
一个 B 类继承A类,或称从类 A 派生类 B
类 A 称为基类(父类),类 B 称为派生类(子类)
基类和派生类
类继承关系的语法形式
class 派生类名 : 基类名表
{
数据成员和成员函数声明
};
基类名表 构成
访问控制 基类名1, 访问控制 基类名2 ,… , 访问控制 基类名n
可多继承
访问控制 表示派生类对基类的继承方式,使用关键字:
public 公有继承
private 私有继承
protected 保护继承
访问控制
不论种方式继承基类,派生类都不能直接使用基类的私有成员
派生类的生成过程经历了三个步骤:
- 吸收基类成员(全部吸收(构造、析构除外),但不一定可见)
- 改造基类成员
- 添加派生类新成员
(1) 吸收基类成员
- 在C++的继承机制中,派生类吸收基类中除构造函数和析构函数之外的全部成员。
(2) 改造基类成员
- 通过在派生类中定义同名成员(包括成员函数和数据成员)来屏蔽(隐藏)在派生类中不起作用的部分基类成员。
(3)添加新成员
- 仅仅继承基类的成员是不够的,需要在派生类中添加新成员,以保证派生类自身特殊属性和行为的实现。
重名成员
派生类定义了与基类同名的成员,在派生类中访问同名成员时屏蔽(hide)了基类的同名成员
在派生类中使用基类的同名成员,显式地使用类名限定符:
类名 :: 成员