一、多态的定义及条件

二、虚函数与重写
2.1virtual
注意事项:只有成员函数可以是虚函数

2.2三同与重写

2.3用基类的指针或引用


注意事项:指针指向什么对象就调用其相应的函数

2.4重写条件的例外

协变与重写

析构函数的重写


为什么析构函数需重写


2.5override与final


2.6含有虚函数的类的大小
注意事项:Base类中存有一个指针和一个char型数据、存在内存对齐


2.7重载重写重定义

练习1:多态下函数的调用

练习2:为什么必须是基类的指针或引用调用重写虚函数


2.8虚函数表与虚函数



三、静态多态与动态多态


四、单继承、多继承、虚函数表
1.vs监视窗口隐藏未重写虚函数的问题

1.1打印虚函数表验证隐藏函数

2.多继承与虚函数表的打印


2.1多继承下重写的函数地址不同的问题

注意事项:此处的func1是Derive重写,实际上最后还是调用了同一地址的func1(即Derive的)
不同的调用func1的方式,区别在于调用的时期不同:

注意事项:多继承的多态模型



五、抽象类



六、面试问题





















