菱形继承(多继承)

1. 什么是菱形继承

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

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

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

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

3. 如何解决?

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

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

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

参考

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

菱形继承问题

相关推荐
tjl521314_2121 分钟前
04C++ 名称空间(Namespace)
开发语言·c++
ximu_polaris25 分钟前
设计模式(C++)-行为型模式-备忘录模式
c++·设计模式·备忘录模式
tankeven5 小时前
C++ 智能指针
c++
handler017 小时前
【算法模板】最小生成树:稠密图选 Prim,稀疏图选 Kruskal
c语言·数据结构·c++·算法
许长安7 小时前
RPC 异步调用基本使用方法:基于官方helloworld-async 示例
c++·经验分享·笔记·rpc
sparEE8 小时前
c++面向对象:对象的赋值
开发语言·c++
此生决int8 小时前
快速复习之数据结构篇——栈和队列
数据结构·c++
H_BB8 小时前
第17届蓝桥杯备战历程
c++·算法·职场和发展·蓝桥杯
daad7778 小时前
记录一次上下文切换次数的统计
服务器·c++·算法
tankeven9 小时前
C++ Lambda 表达式
c++