菱形继承(多继承)

1. 什么是菱形继承

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

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

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

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

3. 如何解决?

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

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

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

参考

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

菱形继承问题

相关推荐
syagain_zsx12 小时前
BRpc 二次封装:Channel 管理、服务管理与回调工厂
c++·学习·程序人生·rpc·谷歌
fpcc13 小时前
计算机原理—如何高效的操作文件
c++·计算机原理
Rabitebla14 小时前
【系统性学习笔记】Linux 权限篇(二):文件属性、权限修改与目录权限的底层逻辑
linux·c++·笔记·学习·算法
system_error_x14 小时前
C++ 编程基础入门教程
开发语言·c++
布莱克60516 小时前
A* 算法详解:从原理到实现
开发语言·c++·算法
多弗朗皮卡丘16 小时前
C++ 智能指针
开发语言·c++·c++11·智能指针
进化中的刀盾兽16 小时前
从零实现 C++ AI 大模型接入 SDK(十):SessionManager 会话管理与多轮对话实现
c++
小成2023032026516 小时前
C++~02运算符重载
开发语言·c++
郑同学的笔记17 小时前
【c++随笔30】C++ 注册回调函数
开发语言·c++
lengxuenong17 小时前
树状数组 · 信息学学习手册2-离散化与逆序对
c++·学习·算法