菱形继承(多继承)

1. 什么是菱形继承

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

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

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

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

3. 如何解决?

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

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

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

参考

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

菱形继承问题

相关推荐
ULTRA??2 分钟前
Qt 中基于 QVector3D 实现的直线交点+法向量计算函数
c++·qt
2301_807997387 分钟前
代码随想录-day55
数据结构·c++·算法
艾莉丝努力练剑8 分钟前
【Linux基础开发工具 (五)】详解自动化构建:make / Makefile
linux·运维·服务器·c++·centos·自动化
SongYuLong的博客8 分钟前
C++基于jsoncpp开源库json数据操作
开发语言·c++·json
艾莉丝努力练剑2 小时前
【C++:异常】C++ 异常处理完全指南:从理论到实践,深入理解栈展开与最佳实践
java·开发语言·c++·安全·c++11
快乐zbc8 小时前
【C++ 基础】:给定一个指针 p,你能判断它是否指向合法的对象吗?
c++
sulikey9 小时前
C++类和对象(下):初始化列表、static、友元、内部类等核心特性详解
c++·static·初始化列表·友元·匿名对象·内部类·编译器优化
oioihoii10 小时前
C++网络编程:从Socket混乱到优雅Reactor的蜕变之路
开发语言·网络·c++
笨鸟要努力10 小时前
Qt C++ windows 设置系统时间
c++·windows·qt
神仙别闹10 小时前
基于C++实现(控制台)应用递推法完成经典型算法的应用
开发语言·c++·算法