菱形继承(多继承)

1. 什么是菱形继承

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

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

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

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

3. 如何解决?

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

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

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

参考

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

菱形继承问题

相关推荐
特立独行的猫a4 小时前
C++使用Boost的Asio库优雅实现定时器与线程池工具类
开发语言·c++·线程池·定时器·boost·asio
郝学胜-神的一滴4 小时前
Linux C++ 守护进程开发指南
linux·运维·服务器·开发语言·c++·程序人生·性能优化
Sichg4 小时前
C++ constexpr
c++
滑稽的小Z4 小时前
[PA 2017] Iloczyn 题解
c++·题解
_dindong4 小时前
笔试强训:Week -8
开发语言·c++·算法
云泽8084 小时前
C++ list容器模拟实现:迭代器、构造与STL风格编程
开发语言·c++·list
MSTcheng.4 小时前
【C++】set / multiset 保姆级教程:从底层原理到实战应用!
开发语言·c++·set
历程里程碑4 小时前
C++ 16:C++11新特化
c语言·开发语言·数据结构·c++·经验分享
xiaoye-duck4 小时前
吃透C++类和对象(中):拷贝构造函数的深度解析
c++
木心爱编程5 小时前
【Qt 5.14.2 新手实战】QTC++入门筑基——10 分钟做个文本编辑器:QLineEdit + QTextEdit 核心用法
java·c++·qt