菱形继承(多继承)

1. 什么是菱形继承

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

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

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

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

3. 如何解决?

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

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

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

参考

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

菱形继承问题

相关推荐
j_xxx404_15 分钟前
力扣困难算法精解:串联所有单词的子串与最小覆盖子串
java·开发语言·c++·算法·leetcode·哈希算法
筱砚.1 小时前
C++——lambda
开发语言·c++·算法
sycmancia2 小时前
C++——动态内存分配、关于虚函数、关于继承中的强制类型转换
开发语言·c++
样例过了就是过了3 小时前
LeetCode热题100 路径总和 III
数据结构·c++·算法·leetcode·链表
OxyTheCrack3 小时前
【C++】简述main函数中的argc与argv
开发语言·c++
历程里程碑3 小时前
Linux 49 HTTP请求与响应实战解析 带http模拟实现源码--万字长文解析
java·开发语言·网络·c++·网络协议·http·排序算法
minji...4 小时前
Linux 基础IO (三) (用户缓冲区/内核缓冲区深刻理解)
java·linux·运维·服务器·c++·算法
biter down4 小时前
C++的IO流
开发语言·c++
一起搞IT吧4 小时前
Android功耗系列专题理论之十四:Sensor功耗问题分析方法
android·c++·智能手机·性能优化
whycthe4 小时前
c++动态规划算法详解
c++·算法·动态规划