菱形继承(多继承)

1. 什么是菱形继承

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

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

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

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

3. 如何解决?

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

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

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

参考

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

菱形继承问题

相关推荐
6Hzlia5 分钟前
【Hot 100 刷题计划】 LeetCode 438. 找到字符串中所有字母异位词 | C++ 滑动窗口题解
c++·算法·leetcode
kyle~6 分钟前
C++---Boost库(准标准库)
开发语言·c++·机器人·ros·boost
白藏y9 分钟前
【C++】muduo基础使用
开发语言·c++·muduo
我不是懒洋洋27 分钟前
【数据结构】单链表专题(详细代码及配图)
c语言·数据结构·c++·算法·visual studio
j_xxx404_27 分钟前
蓝桥杯--搜索(DFS基础回溯法,剪枝,记忆化搜索)
数据结构·c++·算法·蓝桥杯·深度优先·图论
王璐WL28 分钟前
【C++】vector 在OJ中的使用
开发语言·c++
knighthood200142 分钟前
VTK/PCL点云可视化:解决加载后需要手动缩放的问题
c++·pcl
unityのkiven43 分钟前
如何通过DirectShow用C++实现PTZ相机的控制?
开发语言·c++·数码相机
实心儿儿44 分钟前
C++ —— C++11
开发语言·c++
小辉同志1 小时前
17. 电话号码的字母组合
c++·算法·leetcode·深度优先