菱形继承(多继承)

1. 什么是菱形继承

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

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

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

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

3. 如何解决?

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

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

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

参考

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

菱形继承问题

相关推荐
zyeyeye9 分钟前
自定义类型:结构体
c语言·开发语言·数据结构·c++·算法
俩娃妈教编程33 分钟前
2023 年 03 月 二级真题(1)--画三角形
c++·算法·双层循环
航哥的女人1 小时前
C++文件操作
开发语言·c++
L_Aria2 小时前
3824. 【NOIP2014模拟9.9】渴
c++·算法·图论
ShineWinsu2 小时前
对于模拟实现C++list类的详细解析—上
开发语言·数据结构·c++·算法·面试·stl·list
Mr YiRan2 小时前
C++语言类中各个重要函数原理
java·开发语言·c++
stripe-python2 小时前
十二重铲雪法(下)
c++·算法
D_evil__3 小时前
【Effective Modern C++】第五章:右值引用、移动语义和完美转发:29. 认识移动操作的缺点
c++
化学在逃硬闯CS3 小时前
【Leetcode热题100】108.将有序数组转换为二叉搜索树
数据结构·c++·算法·leetcode
tankeven3 小时前
HJ86 求最大连续bit数
c++·算法