菱形继承(多继承)

1. 什么是菱形继承

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

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

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

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

3. 如何解决?

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

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

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

参考

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

菱形继承问题

相关推荐
玖釉-19 分钟前
二叉树展开为链表:从先序遍历到原地指针重排
c++·windows·算法·leetcode·链表
Mister西泽42 分钟前
C++ Primer Plus 第六版 编程练习题及详细答案
开发语言·c++·学习·visual studio
Qt程序员1 小时前
从上电到系统就绪:ARM+U-Boot 嵌入式 Linux 启动流程
linux·运维·c++·内核·设备树·嵌入式·ram
cany10002 小时前
C++ -- lambda捕获
c++
Kilicc_2 小时前
C++知识点—03 <C++宏代码生成/宏反射写法>
c++
RuiZN4 小时前
UE5 UObject类详解
c++·ue5
ZhangShao06074 小时前
题解:AT_abc459_e
c++
chengO_o5 小时前
AVL树详解与实现(C++)
数据结构·c++·avl树·平衡二叉搜索树
玉树临风ives5 小时前
atcoder ABC 458 题解
数据结构·c++·算法
chengO_o5 小时前
STL关联式容器:map 与 set 的使用
c++·stl·set·map·平衡二叉搜索树