菱形继承(多继承)

1. 什么是菱形继承

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

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

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

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

3. 如何解决?

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

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

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

参考

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

菱形继承问题

相关推荐
啦啦啦啦啦zzzz10 分钟前
数据结构:红黑树理论
数据结构·c++·红黑树
Yolo_TvT15 分钟前
C++:默认构造函数
c++
小欣加油2 小时前
leetcode994 腐烂的橘子
数据结构·c++·算法·leetcode·bfs
.千余3 小时前
【C++】手写双向链表:list容器模拟实现
开发语言·c++·笔记·学习·其他
liulilittle3 小时前
过冲:拥塞控制的呼吸与盲行
linux·网络·c++·tcp/ip·计算机网络·tcp·通信
小欣加油4 小时前
leetcode2574 左右元素和的差值
数据结构·c++·算法·leetcode·职场和发展
weixin_461769404 小时前
通过数组和队列构造二叉树方法(用于算法测试),C++ vector不能直接使用null
数据结构·c++·算法·vector·nullptr·null
千寻girling4 小时前
一周没跑步了 ,今日跑步 5KM , 哑铃+健身 20min , 俯卧撑 30 个 ;
数据结构·c++·python·算法·leetcode·职场和发展·线性回归
坚果派·白晓明4 小时前
鸿蒙PC三方库使用:使用 AtomCode + Skills 自动完成鸿蒙化三方库spdlog集成
c++·华为·ai编程·harmonyos·skills·atomcode·c/c++三方库
玖玥拾4 小时前
C/C++ 基础笔记(九)联合、枚举及文件操作
c语言·c++·文件操作·枚举·联合