多态
多态的基本概念
多态是c++面向对象三大特性之一
多态的优点:
- 代码组织结构清晰
- 可读性强
- 利于前期和后期的扩展和维护
多态分为两类:
- 静态多态:函数重载 和 运算符重载 属于静态多态 复用函数名
- 动态多态: 派生类 和 虚函数实行运行时多态
静态多态和动态多态的区别
- 静态多态的函数地址早绑定
- 动态多态的函数地址晚绑定
- 父类的 虚函数 在子类中可以重写
纯虚函数和抽象类
- 纯虚函数语法:virtual 返回值类型 函数名 (参数列表) = 0;
- 当类中有了纯虚函数,这个类也称为 抽象类
抽象类特点:
1 . 无法实例化对象
2. 子类必须重写抽象类中的纯虚函数,否则也属于抽象类
虚析构和纯虚析构
- 父类指针在析构时,不会调用子类的析构函数 当子类中申请堆内数据时,子类在析构时无法释放申请的堆内数据
- 解决方式:使用虚析构
- 有了纯虚析构后,类也为抽象类 无法实例化对象