菱形继承(多继承)

1. 什么是菱形继承

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

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

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

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

3. 如何解决?

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

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

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

参考

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

菱形继承问题

相关推荐
故事和你911 分钟前
洛谷-【图论2-2】最短路1
开发语言·数据结构·c++·算法·动态规划·图论
杰之行15 分钟前
Fast-DDS 接收数据完整时序分析
c++·人工智能
沫璃染墨32 分钟前
红黑树完全指南:从核心原理到插入验证全实现
开发语言·c++·算法
号码认证服务43 分钟前
客户看到来电显示公司名会更愿意接听吗?企业号码认证提升ROI
服务器·网络·c++·经验分享·智能手机·云计算·php
流年如夢1 小时前
初入C++
开发语言·c++
yoyo_zzm1 小时前
编程语言大比拼:C++到PHP全解析
开发语言·c++·php
努力努力再努力wz1 小时前
【C++高阶数据结构系列】:时间轮定时器详解:原理分析与代码实现,带你从零手撕时间轮!(附时间轮的实现源码)
c语言·开发语言·数据结构·c++·qt·算法·ui
水饺编程1 小时前
编程基础:令牌粘贴指令,【##】
c语言·c++·windows·visual studio
basketball6161 小时前
C 的 malloc/free 与 C++ 的 new/delete 一些区别
c语言·开发语言·c++
mmz12071 小时前
广搜题目练习(c++)
c++·算法