菱形继承(多继承)

1. 什么是菱形继承

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

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

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

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

3. 如何解决?

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

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

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

参考

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

菱形继承问题

相关推荐
ULTRA??13 小时前
插入排序算法实现(二分查找搜索版本)
c++·算法
郭涤生19 小时前
布隆过滤器
c++
智者知已应修善业19 小时前
【求中位数】2024-1-23
c语言·c++·经验分享·笔记·算法
9ilk19 小时前
【C++】--- 特殊类设计
开发语言·c++·后端
程序员zgh1 天前
Linux系统常用命令集合
linux·运维·服务器·c语言·开发语言·c++
獭.獭.1 天前
C++ -- STL【unordered_set与unordered_map的实现】
开发语言·c++·unordered_map·unordered_set
qq_433554541 天前
C++数位DP
c++·算法·图论
似水এ᭄往昔1 天前
【C++】--AVL树的认识和实现
开发语言·数据结构·c++·算法·stl
程序员zgh1 天前
常用通信协议介绍(CAN、RS232、RS485、IIC、SPI、TCP/IP)
c语言·网络·c++
暗然而日章1 天前
C++基础:Stanford CS106L学习笔记 8 继承
c++·笔记·学习