虚拟继承解决菱形继承二义性的原理
虚拟继承:
重点了解编译器为派生类中新增的4个字节:
对象的前4个字节存放的是虚基表的地址,虚基表里面存放是的派生类对象相对于自己的偏移量和派生类对象相对于基类部分的偏移量。
菱形虚拟继承方式如何解决二义性问题:
让最顶层基类中的成员在最底层派生类对象中只存储一份
通过虚基表的存放的偏移量来访问最顶层基类中的成员
虚拟继承:
重点了解编译器为派生类中新增的4个字节:
对象的前4个字节存放的是虚基表的地址,虚基表里面存放是的派生类对象相对于自己的偏移量和派生类对象相对于基类部分的偏移量。
菱形虚拟继承方式如何解决二义性问题:
让最顶层基类中的成员在最底层派生类对象中只存储一份
通过虚基表的存放的偏移量来访问最顶层基类中的成员