多态
多态分为静态多态和动态多态,静态多态是在编译期间就能确定的多态,动态多态是在运行期间确定的多态
静态多态包括:函数重载,运算符重载,模板。
动态多态:父类指针或引用指向子类对象,并通过指针或引用调用重写函数。
动态多态调用条件
- 继承:必须有两个类,基类以及基类派生的子类。
- 虚函数:在基类中必须有一个函数被声明为虚函数(virtual关键字来声明)。
- 基类的指针或者引用:通过基类的指针或者引用来调用虚函数表。
虚函数了解:虚函数的原理以及如何调用。。。
动态多态的调用过程(使用虚函数表)
首先会通过父类指针或引用访问到子类对象中的虚表指针,然后通过虚表指针找到虚函数表通过虚函数表存放的虚