菱形继承(多继承)

1. 什么是菱形继承

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

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

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

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

3. 如何解决?

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

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

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

参考

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

菱形继承问题

相关推荐
郝学胜-神的一滴18 分钟前
Qt重复添加控件问题探析:现象、原理与解决方案
开发语言·数据库·c++·qt·程序人生
阿猿收手吧!25 分钟前
【音视频】HLS 协议详细解析
c++·音视频
寻星探路33 分钟前
网络原理全景图:从通信起源到 TCP/IP 体系架构深度拆解
java·网络·c++·python·tcp/ip·http·架构
爪哇部落算法小助手42 分钟前
每日两题day67
c++·算法
你撅嘴真丑1 小时前
短信计费 和 甲流病人初筛
数据结构·c++·算法
阿猿收手吧!1 小时前
【音视频】MP4 文件结构详细解析
c++·音视频
散峰而望9 小时前
【算法竞赛】C++函数详解:从定义、调用到高级用法
c语言·开发语言·数据结构·c++·算法·github
CoderCodingNo9 小时前
【GESP】C++五级真题(贪心思想考点) luogu-B4071 [GESP202412 五级] 武器强化
开发语言·c++·算法
我有一些感想……9 小时前
An abstract way to solve Luogu P1001
c++·算法·ai·洛谷·mlp
智者知已应修善业11 小时前
【求等差数列个数/无序获取最大最小次大次小】2024-3-8
c语言·c++·经验分享·笔记·算法