一.虚函数
image.png
image.png
image.png
image.png
image.png
二.纯虚函数
image.png
image.png
image.png
image.png
image.png
image.png
三,虚析构函数
image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png
四.纯虚函数
image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png
五,多继承
image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png
六.多继承-虚函数
image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png
七.菱形继承
image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png
八. 虚继承
image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png
9.实践
1.普通继承方式
image.png
image.png
类对象的内存空间布局,父类的成员变量,在子类的成员变量前面,
2.virtual 继承
image.png
image.png
类对象的内存空间布局,前4个字节位虚表地址,接下来的4个字节为子类的成员变量,最后的4个字节为父类的成员变量
- virtual 菱形继承
image.png
image.png
image.png
image.png
- 在虚继承的方式下,查看对象虚表里面存放的数据,单继承
image.png
image.png
image.png
- 在虚继承的方式下,查看对象虚表里面存放的数据,菱形继承
image.png
image.png
image.png
image.png
student的虚表
image.png
worker的虚表
image.png