菱形继承(多继承)

1. 什么是菱形继承

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

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

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

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

3. 如何解决?

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

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

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

参考

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

菱形继承问题

相关推荐
biter down2 分钟前
C++ 组合与继承:从设计本质到实战,吃透高内聚低耦合
开发语言·c++
fantasy5_513 分钟前
C++11 核心特性实战博客
java·开发语言·c++
天若有情67342 分钟前
从构造函数到Vue3响应式:C++中“常量转特殊类型”的隐藏大招
开发语言·c++
qq_433554541 小时前
C++ 进阶动态规划(小明的背包3)
开发语言·c++·动态规划
YouEmbedded1 小时前
解码继承——代码复用与层次化设计
开发语言·c++·继承
有点。1 小时前
C++ ⼀级 2023 年 12 ⽉
c++
FMRbpm1 小时前
顺序表实现队列
数据结构·c++·算法·新手入门
飞天狗1111 小时前
G. Mukhammadali and the Smooth Array
数据结构·c++·算法
罗湖老棍子2 小时前
Knight Moves(信息学奥赛一本通- P1257)
c++·算法·bfs
stanleyrain2 小时前
c++指针问题
开发语言·c++