菱形继承(多继承)

1. 什么是菱形继承

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

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

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

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

3. 如何解决?

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

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

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

参考

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

菱形继承问题

相关推荐
ysa051030几秒前
运用map优化多次查询【Kadomatsu 子序列】
数据结构·c++·笔记·算法
TTTrees5 分钟前
C++学习笔记(31):智能指针(shared_ptr)
c++
_饭团7 分钟前
C 语言内存函数全解析:从 memcpy 到 memcmp 的使用与模拟实现
c语言·开发语言·c++·学习·算法·面试·改行学it
24白菜头8 分钟前
第十五届蓝桥杯C&C++大学B组
数据结构·c++·笔记·学习·算法·leetcode·蓝桥杯
学嵌入式的小杨同学16 分钟前
STM32 进阶封神之路(二十二):DMA 实战全攻略 ——ADC 采集 + 串口收发 + 内存复制(库函数 + 代码落地)
c++·stm32·单片机·嵌入式硬件·mcu·硬件架构·pcb
2401_8845632417 分钟前
C++中的观察者模式实战
开发语言·c++·算法
xiaoye-duck33 分钟前
《算法题讲解指南:动态规划算法--路径问题》--11.按摩师,12.打家劫舍II
c++·算法·动态规划
历程里程碑35 分钟前
43. TCP -2实现英文查中文功能
java·linux·开发语言·c++·udp·c#·排序算法
qq_4176950543 分钟前
C++中的中介者模式
开发语言·c++·算法
xiangpanf43 分钟前
PHP爬虫框架:Goutte vs Panther
开发语言·c++·vue.js·php