29.运算符重载
①概念:给原有运算符赋予新功能
②关键字:operator
③++运算符重载需要区分前置++重载和后置++重载。
④有些运算符必须使用成员函数重载,有些则必须使用友元函数重载。
30.继承
<一>
①被继承的类叫做基类也叫做父类,从其他类继承而来的类叫做派生类也叫做子类。
②子类中不仅继承了父类中的数据成员,也继承了父类的成员函数。
③C++中的继承关系是概念上的父子关系,不是个体的父子关系。
<二>多继承与多重继承
①多继承是指一个子类继承多个父类。
②多继承对父类的个数没有限制,继承方法可以是公共继承、保护继承和私有继承。
③多重继承与多继承不同,当 B 类从 A 类派生,C 类从 B 类派生,此时成为多重继承。
| 基类成员访问属性 | 继承方式 | 派生类成员访问属性 |
| private成员 | 无法访问 | |
| protected成员 | private | private |
| public成员 | private |
31.派生
①B 类从 A 类派生,那么 B 类是 A 类的子类,A 类是 B 类的超类。
②B 类从 A 类派生,那么 B 类中含有 A 类的所有数据成员。
③B 类从 A 类公共派生,那么可以在 B 类中直接使用 A 的公共及保护限定符的数据成员。
④B 类从 A 类公共派生,那么 B 类只能调用到A的公共及保护限定符下的成员函数。
⑤B 类从 A 类公共派生,那么 A 类的公共成员函数成为 B 类的公共成员函数。
B 类从 A 类公共派生,那么 A 类的保护成员函数成为 B 类的保护成员函数。
B 类从 A 类公共派生,那么 A 类的私有成员函数不能被 B 类继承并使用。
⑥B 类从 A 类私有派生,那么 A 类的公共成员函数成为 B 类的私有成员函数。
B 类从 A 类保护派生,那么 A 类的公共成员函数成为 B 类的保护成员函数。
B 类从 A 类保护派生,那么 A 类的保护成员函数成为 B 类的保护成员函数。
32.多态
①指相同对象收到不同消息或不同对象收到相同消息时产生不同的动作
②多态具体到语法中是指使用父类指针指向子类对象,并可以通过该指针调用子类的方法。
③产生多态的基础是继承关系,没有继承就没有多态。
④多态的语法核心是 virtual 关键字,必须使用 virtual 才能使多个类间建立 多态关系。
⑤封装、继承、多态是面向对象的三大特性。
33.虚函数
①普通函数不能是虚函数。
②静态成员函数不能是虚函数。
③只有虚析构函数,没有虚构造函数。
✳ ④虚函数使用 virtual 关键字定义,但使用 virtual 关键字时,并非全部是虚函数。
⑤虚函数特性可以被继承,当子类中定义的函数与父类中虚函数的声明相同时, 该函数也是虚函数。
⑥虚析构函数是为了避免使用父类指针释放子类对象时造成内存泄露。
34.虚函数表
①在 C++中多态的实现是通过虚函数表实现的。
②每个类只有一份虚函数表,所有该类的对象共用同一张虚函数表。
③两张虚函数表中的函数指针可能指向同一个函数。
④当类中仅含有虚析构函数,含有其他函数时,也会产生虚函数表。
35.纯虚函数
①只有函数声明没有函数定义的虚函数是纯虚函数。
②含有纯虚函数的类叫做抽象类。
③抽象类的子类也可以是抽象类。
④含有纯虚函数的类不可以实例化。
C++面向对象编程:运算符重载、继承与多态解析
153

被折叠的 条评论
为什么被折叠?



