菱形继承(多继承)

1. 什么是菱形继承

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

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

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

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

3. 如何解决?

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

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

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

参考

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

菱形继承问题

相关推荐
冷崖13 小时前
桥模式-结构型
c++·设计模式
D_evil__13 小时前
【Effective Modern C++】第三章 转向现代C++:9. 优先选用别名声明,而非typedef
c++
HellowAmy13 小时前
我的C++规范 - 回调的设想
开发语言·c++·代码规范
安全二次方security²13 小时前
CUDA C++编程指南(7.1)——C++语言扩展之函数执行空间指定符
c++·人工智能·nvidia·cuda·cuda编程·global·函数执行空间指定符
Q741_14713 小时前
C++ 优先级队列 大小堆 模拟 力扣 1046. 最后一块石头的重量 每日一题
开发语言·c++·算法·leetcode·优先级队列·
KiefaC13 小时前
【C++】特殊类设计
开发语言·c++
坐怀不乱杯魂13 小时前
Linux - 进程信号
linux·c++
Trouvaille ~13 小时前
【Linux】进程信号(一):信号的快速认识与五种产生方式
linux·运维·网络·c++·操作系统·信号处理·中断
啊阿狸不会拉杆13 小时前
《计算机操作系统》第六章-输入输出系统
java·开发语言·c++·人工智能·嵌入式硬件·os·计算机操作系统
潇冉沐晴13 小时前
div3 970个人笔记
c++·笔记·算法