菱形继承(多继承)

1. 什么是菱形继承

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

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

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

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

3. 如何解决?

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

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

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

参考

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

菱形继承问题

相关推荐
云深麋鹿24 分钟前
C++入门篇
c++
量子炒饭大师40 分钟前
【C++入门】零域终端的虚空指针协议——【nullptr】还在为编译器给NULL匹配为int而头疼?nullptr给予你全新的字面量!
开发语言·c++·nullptr
阿豪只会阿巴1 小时前
【多喝热水系列】从零开始的ROS2之旅——Day10 话题的订阅与发布1:Python
开发语言·c++·python·ubuntu·ros2
羊小猪~~1 小时前
【QT】--文件操作
前端·数据库·c++·后端·qt·qt6.3
2501_940315261 小时前
【无标题】1.17给定一个数将其转换为任意一个进制数(用栈的方法)
开发语言·c++·算法
fpcc2 小时前
C++23中的模块应用说明之五综合应用和重点分
c++·c++23
xiaoye-duck3 小时前
吃透C++类和对象(下):内部类、匿名对象及编译器优化的深度解析
c++
情缘晓梦.3 小时前
C++ 内存管理
开发语言·jvm·c++
恒者走天下3 小时前
研一、大一大二学计算机应该怎么规划
c++
我是一只小青蛙8883 小时前
Windows下MATLAB与C++混合编程实战
c++