菱形继承(多继承)

1. 什么是菱形继承

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

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

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

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

3. 如何解决?

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

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

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

参考

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

菱形继承问题

相关推荐
C++ 老炮儿的技术栈2 分钟前
机器人的坐标,像 XYZ 的坐标值,是用单精度浮点还是用双精度浮点?
c语言·c++·人工智能·单片机·c
zaizai10075 分钟前
STL深度剖析2
java·c++·算法
幻智星科技11 分钟前
FPGA纯硬件UDP桥接:微秒级响应新范式
c++·fpga开发·硬件架构
青少儿编程课堂17 分钟前
蓝桥杯·全国青少年信息素养大赛·电子学会Python/C++考级:位运算实战——二进制权限与最大异或解析
c++·python·算法·bfs·信息学竞赛
青少儿编程课堂19 分钟前
2026蓝桥杯青少组图形化真题:校园飞机大战解析(全国青少年信息素养·电子学会图形化考级)
c++·python·算法·bfs·信息学竞赛
CodeYp201932 分钟前
第16讲:set 和 map 的使用
开发语言·c++·set·map
傲世仙尊42 分钟前
vector起步与底层-三个指针迭代器失效与为模板升级内置类型
c++
誰能久伴不乏3 小时前
桌面客户端的运行日志系统:SQLite 分块 + 独立写线程 + 文本降级
数据库·c++·qt·架构·sqlite
choumin12 小时前
C++中万能引用与std::forward的作用和用法
c++·万能引用·std forward
下一站春风里13 小时前
位运算完整学习笔记:按位与(&)+ 异或(^)
开发语言·c++·算法