菱形继承(多继承)

1. 什么是菱形继承

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

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

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

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

3. 如何解决?

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

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

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

参考

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

菱形继承问题

相关推荐
unicrom_深圳市由你创科技3 小时前
哪些控制逻辑应该放在 PLC,哪些放在上位机?
c++
玖玥拾4 小时前
C/C++ 基础笔记(十三)继承
c语言·c++·继承
ao-weilai5 小时前
C++:哈希表
c++·哈希算法·散列表
汉克老师5 小时前
GESP7级C++考试语法知识(二、指数函数(1、pow() 函数)
c++·指数函数·pow·gesp7级·精度误差
旖-旎6 小时前
FloodFill(图像渲染)(1)
c++·算法·深度优先·力扣
汉克老师7 小时前
GESP2026年3月认证C++六级真题与解析(编程题1 选数)
c++·动态规划·线性dp·gesp六级·状态转移·选与不选
有点。7 小时前
C++倍增法(练习题)
c++·算法
凡人叶枫7 小时前
Effective C++ 条款23:宁以 non-member、non-friend 替换 member 函数
linux·开发语言·c++·嵌入式开发
C语言小火车7 小时前
什么时候用智能指针?什么时候用裸指针?
c语言·c++·学习·指针
玖玥拾8 小时前
C/C++ 基础笔记(十二)友元、运算符重载
c语言·c++·运算符重载·友元