菱形继承(多继承)

1. 什么是菱形继承

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

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

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

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

3. 如何解决?

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

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

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

参考

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

菱形继承问题

相关推荐
小小8程序员8 小时前
STL 库(C++ Standard Template Library)全面介绍
java·开发语言·c++
老王熬夜敲代码9 小时前
C++中的atomic
开发语言·c++·笔记·面试
龚礼鹏10 小时前
Android应用程序 c/c++ 崩溃排查流程
c语言·开发语言·c++
REDcker11 小时前
JS 与 C++ 语言绑定技术详解
开发语言·javascript·c++
June`11 小时前
C++11新特性全面解析(三):智能指针与死锁
开发语言·c++
小小晓.12 小时前
Pinely Round 4 (Div. 1 + Div. 2)
c++·算法
SHOJYS12 小时前
学习离线处理 [CSP-J 2022 山东] 部署
数据结构·c++·学习·算法
steins_甲乙13 小时前
C++并发编程(3)——资源竞争下的安全栈
开发语言·c++·安全
煤球王子13 小时前
学而时习之:C++中的异常处理2
c++
仰泳的熊猫14 小时前
1084 Broken Keyboard
数据结构·c++·算法·pat考试