菱形继承(多继承)

1. 什么是菱形继承

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

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

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

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

3. 如何解决?

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

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

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

参考

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

菱形继承问题

相关推荐
水天需01011 分钟前
VS Code C++ 环境配置及 HelloWorld 程序
c++
初圣魔门首席弟子12 分钟前
第六章、[特殊字符] HTTP 深度进阶:报文格式 + 服务器实现(从理论到代码)
linux·网络·c++
永远都不秃头的程序员(互关)16 分钟前
查找算法深入分析与实践:从线性查找到二分查找
数据结构·c++·算法
Sunsets_Red17 分钟前
二项式定理
java·c++·python·算法·数学建模·c#
好评12428 分钟前
C/C++ 内存管理:摆脱野指针和内存泄漏
开发语言·c++·内存管理·c/c++
威哥爱编程40 分钟前
【鸿蒙开发案例篇】NAPI 实现 ArkTS 与 C++ 间的复杂对象传递
c++·harmonyos·arkts
0 0 042 分钟前
CCF-CSP 37-3 模板展开(templating)【C++】
c++·算法
埃伊蟹黄面1 小时前
二分查找算法
c++·算法·leetcode
lengxuenong1 小时前
第四届挑战赛二轮题解
c++·算法
小毅&Nora1 小时前
【后端】【C++】函数对象与泛型算法:从“找最便宜的菜”说起
c++·算法·泛型