跳至正文

虚继承

C++ 继承和虚拟继承的内存分布

  • 技术

菱形继承

菱形继承:菱形继承的问题在于数据冗余和二义性。

将子类转化成爷爷类的时候会报错,因为不知道要转化到哪个类上去,这里需要加入static_cast才行。爷爷类会在两个父类中都被定义,解决的办法是:虚拟继承。

虚拟继承让被菱形继承的父类只会存在一份,消除数据冗余,那这里就得问一下,内存是如何布[……]

继续阅读