一、谈谈你对多态的理解
1、多态的实现效果
同样的调用语句有多种不同的表现形态,即同一个函数在父类与子类中穿梭,所表现出多种形态。
2、多态实现的三个条件
- 要有继承
- 要有虚函数重写
- 通过父类指针(引用)指向子类
3、多态的C++实现
virtual关键字,告诉编译器这个函数要支持多态;不是根据指针类型判断如何使用;而是根据传递给父类指针的实际对象类型判断如何调用。
4、多态的理论基础
动态联编 PK 静态联编,根据实际对象类型来判断重写函数的调用。
5、多态的重要意义
设计模式的基础。
6、实现多态的理论基础
用函数指针作为函数参数。
7、多态原理探究
- 根据virtual关键字,判定为虚函数,所以C++编译器会创建一个虚函数表,存入所有的虚函数。
- 定义类对象时,编译器C++会给此对象创建一个vptr指针。
- 在通过父类指针调用虚函数时,vptr会指向对应的虚函数表,通过寻址操作调用对应的虚函数。
1、父类和子类都有各自的vptr指针
2、父类和子类都有各自的虚函数表