菱形继承(多继承)

1. 什么是菱形继承

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

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

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

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

3. 如何解决?

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

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

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

参考

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

菱形继承问题

相关推荐
xiaoye-duck3 小时前
《算法题讲解指南:递归,搜索与回溯算法--递归》--3.反转链表,4.两两交换链表中的节点,5.快速幂
数据结构·c++·算法·递归
山栀shanzhi3 小时前
归并排序(Merge Sort)原理与实现
数据结构·c++·算法·排序算法
Trouvaille ~3 小时前
【递归、搜索与回溯】专题(七):FloodFill 算法——勇往直前的洪水灌溉
c++·算法·leetcode·青少年编程·面试·蓝桥杯·递归搜索回溯
zhooyu4 小时前
二维坐标转三维坐标的实现原理
c++·3d·opengl
10Eugene5 小时前
C++/Qt自制八股文
java·开发语言·c++
「QT(C++)开发工程师」5 小时前
C++11 新特性 正则表达式、随机数库、元组
c++·正则表达式
free-elcmacom6 小时前
C++ 默认参数详解:用法、规则与避坑指南
开发语言·c++
Albert Edison6 小时前
【ProtoBuf 语法详解】Any 类型
服务器·开发语言·c++·protobuf
无忧.芙桃7 小时前
C++11的部分内容(上)
c++
小璐资源网7 小时前
C++中如何正确区分`=`和`==`的使用场景?
java·c++·算法