菱形继承(多继承)

1. 什么是菱形继承

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

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

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

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

3. 如何解决?

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

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

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

参考

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

菱形继承问题

相关推荐
凡人叶枫3 小时前
Effective C++ 条款30:透彻了解 inlining 的里里外外
linux·开发语言·c++·嵌入式开发·effective c++
noipp3 小时前
推荐题目:洛谷 P10907 [蓝桥杯 2024 国 B] 蚂蚁开会
c语言·c++·算法·编程·洛谷
学逆向的3 小时前
C++纯虚函数
开发语言·c++·网络安全
凡人叶枫4 小时前
Effective C++ 条款22:将成员变量声明为 private
linux·开发语言·c++
坚果派·白晓明6 小时前
【鸿蒙PC】SDL3 移植:AtomCode Skills 4 步速通多媒体库适配
c++·华为·ai编程·harmonyos·atomcode·c/c++三方库
赴生-6 小时前
C++进阶 C++11(下)
开发语言·c++
有点。7 小时前
C++(贪心算法一)
c++·贪心算法
WBluuue7 小时前
数据结构与算法:有序表(二):跳表
数据结构·c++·算法·skiplist
赴生-7 小时前
C++进阶 异常
开发语言·c++
凡人叶枫8 小时前
Effective C++ 条款28:避免使用 handles 指向对象内部
linux·服务器·开发语言·c++·嵌入式开发