— 继承
可以使得派生类具有父类的各种属性和功能,而不需要再次编写相同的代码。
类的继承:派生类继承了父类的特性(数据和函数)
► 继承是可传递的:从父类继承的特性可以传递给新的子类
► 继承方式:规定了如何访问从父类继承的成员
► 继承方式有三种:public、protected、private
► 派生类成员:从父类继承的成员+新增加的成员
继承方式不同,访问控制不同
父类成员函数访问父类成员:正常访问
派生类成员函数访问派生类新增成员:正常访问
父类成员函数访问派生类新增成员:不能访问
派生类成员函数访问父类成员:继承方式+成员本身访问属性
非成员函数访问派生类所有成员:只能访问公有成员
派生类对象的初始化:
- 派生类的构造函数只负责新增数据成员的初始化- 从父类继承的成员需通过调用父类的构造函数进行初始化
† 利用作用域分辨符可明确标识从父类继承的成员,从而解决了成员同名问题
调用父类的构造函数,按被继承时声明的顺序执行-
对派生类新增内嵌对象初始化,按它们在类中声明的顺序-
虚继承【待完善】
父亲的父亲,但只储存一个数据
多态
多态 是指同样的消息被不同类型的对象接收时会导致不同的行为,即接口的多种不同的实现方式。比如调用具有相同函数名的函数,但实现不同的功能。
实现:虚函数、纯虚函数、模版