菱形继承(多继承)

1. 什么是菱形继承

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

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

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

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

3. 如何解决?

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

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

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

参考

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

菱形继承问题

相关推荐
Hical_W8 分钟前
为 C++ Web 框架设计三层 PMR 内存池:从原理到实战
c++·github
BestOrNothing_201531 分钟前
C++零基础到工程实战(3.6):逻辑实战示例—日志模块
c++·命令行参数·main函数·switch case·逻辑判断·if else·enum class
t***54431 分钟前
有哪些常见的架构设计模式在现代C++中应用
开发语言·c++
zopple1 小时前
汇编、C、C++和Java核心技术对比
c语言·汇编·c++
汉克老师2 小时前
GESP2024年3月认证C++三级( 第三部分编程题(1、字母求和)
c++·string·gesp三级·gesp3级·大小写判断
沐雪轻挽萤2 小时前
10. C++17新特性-保证的拷贝消除 (Guaranteed Copy Elision / RVO)
开发语言·c++
leaves falling3 小时前
C/C++ 的内存管理,函数栈帧详讲
java·c语言·c++
wuyoula3 小时前
AI导航智能决策系统源码 附教程
c++·tcp/ip·源码
浅念-3 小时前
从LeetCode入门位运算:常见技巧与实战题目全解析
数据结构·数据库·c++·笔记·算法·leetcode·牛客
XY_墨莲伊4 小时前
【编译原理】实验二:基于有穷自动机FA词法分析器设计与实现
c语言·开发语言·c++·python