虚继承时,同虚函数一样会有虚表产生。虚继承时的子类前几个字节会存放一个指针,叫做虚指针。该指针指向一个虚表,表中存放着虚基类中变量的偏移量
虚表的第一项:虚表指针和该指针所属类的起始地址的偏移量,一般为0
虚表的其他项:虚基类中第一个成员变量和该类起始地址的偏移量
产生虚继承时,内存中父类的成员变量在子类成员变量的后面,而非普通继承时的前面。
对于类Student来说,Person是它的虚基类
对于类Person来说,Person是它的虚基类
对于类Undergraduate来说,Person是它的虚基类
类Student的内存结构
类Worker的内存结构
类Undergraduate的内存结构
原文:https://www.cnblogs.com/primabrucexu/p/12421383.html