菱形继承(多继承)

1. 什么是菱形继承

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

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

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

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

3. 如何解决?

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

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

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

参考

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

菱形继承问题

相关推荐
无敌岩雀几秒前
C++设计模式创建型模式———单例模式
c++·单例模式·设计模式
canyuemanyue1 分钟前
C++单例模式
开发语言·c++·单例模式
冬天的枫树6 分钟前
人工智能原理实验一:知识的表示与推理实验
c++·人工智能
黑不溜秋的19 分钟前
C++ 模板专题 - 标签分派(Tag Dispatching)
开发语言·c++·算法
skywind29 分钟前
为什么 C 语言数组是从 0 开始计数的?
c语言·开发语言·网络·c++
ProcedureStone35 分钟前
【算法】排序算法总结
c++·算法·排序算法
千里马-horse1 小时前
在OpenCL 中输出CLinfo信息
开发语言·c++·算法·opencl·1024程序员节
羊小猪~~1 小时前
C/C++语言基础--C++模板与元编程系列二类模板、全特化、偏特化、编译模型简介、实现简单Vetctor等…………)
java·c语言·开发语言·c++·visual studio code·visual studio
东方未明01082 小时前
C/C++(九)C语言与C++中的类型转换
c++·1024程序员节
it00zyq2 小时前
多线程环境下内存池的实现(C++)
c++