C++ 相关介绍转载

08. 纯虚函数、抽象类、多继承、菱形继承、虚

2019-04-04  本文已影响0人  ngugg

一.虚函数


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个字节为父类的成员变量

  1. virtual 菱形继承
image.png image.png image.png image.png
  1. 在虚继承的方式下,查看对象虚表里面存放的数据,单继承
image.png image.png image.png
  1. 在虚继承的方式下,查看对象虚表里面存放的数据,菱形继承
image.png image.png image.png image.png

student的虚表

image.png

worker的虚表

image.png
上一篇 下一篇

猜你喜欢

热点阅读