菱形继承(多继承)

1. 什么是菱形继承

也就是多继承,C++独有的特性。

2. 菱形继承有什么问题?

(1)存在内存浪费,多存一份父类的父类。

(2)容易造成二义性(不知道修改哪一个基本属性)。

3. 如何解决?

虚继承,子类只继承一次父类的父类,继承时带上virtual关键字。

4. 实现原理(内存模型)

通过虚基表指针,找到共同指向的父类。

参考

【【C++面试题】怎么解决C++菱形继承】

菱形继承问题

相关推荐
m0_569881478 分钟前
C++中的适配器模式变体
开发语言·c++·算法
汉克老师34 分钟前
GESP2026年3月认证C++五级( 第三部分编程题(2)找数)
c++·排序·双指针·二分算法·gesp5级·gesp五级
长安第一美人36 分钟前
AI辅助下的嵌入式UI系统设计与实践(二)[代码阅读理解]
c++·嵌入式硬件·ui·显示屏·工业应用
比昨天多敲两行1 小时前
C++ 多态
开发语言·c++
是娇娇公主~1 小时前
C++ 多态机制与虚函数实现原理
c语言·c++
m0_569881471 小时前
跨语言调用C++接口
开发语言·c++·算法
2501_924952692 小时前
C++中的过滤器模式
开发语言·c++·算法
zhixingheyi_tian2 小时前
gdb 之 attach
c++
2401_873204652 小时前
C++中的组合模式实战
开发语言·c++·算法
2401_831824962 小时前
高性能压缩库实现
开发语言·c++·算法