菱形继承(多继承)

1. 什么是菱形继承

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

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

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

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

3. 如何解决?

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

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

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

参考

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

菱形继承问题

相关推荐
ue星空18 小时前
全局描述符表GDT (Global Descriptor Table)
c++
oioihoii19 小时前
C++中的多态:动态多态与静态多态详解
java·开发语言·c++
TinyPiXOS开发者联盟19 小时前
轻量级嵌入式系统的 Lottie 动画实现
linux·c++·动画·嵌入式开发·lottie·tinypixos·tpgui
kyle~19 小时前
C++---关键字constexpr
java·开发语言·c++
进击的圆儿19 小时前
10个TCP可靠性与拥塞控制题目整理
网络·c++·tcp/ip
小欣加油20 小时前
leetcode 860 柠檬水找零
c++·算法·leetcode·职场和发展·贪心算法
买辣椒用券21 小时前
在Linux上实现Modbus RTU通信:一个轻量级C++解决方案
linux·c++
小龙报21 小时前
《C语言疑难点 --- C语内存函数专题》
c语言·开发语言·c++·创业创新·学习方法·业界资讯·visual studio
卡提西亚1 天前
C++笔记-21-运算符重载
c++·笔记
草莓熊Lotso1 天前
C++ 继承特殊场景解析:友元、静态成员与菱形继承的底层逻辑
服务器·开发语言·c++·人工智能·经验分享·笔记·1024程序员节