菱形继承(多继承)

1. 什么是菱形继承

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

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

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

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

3. 如何解决?

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

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

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

参考

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

菱形继承问题

相关推荐
Lzg_na10 小时前
僵尸进程、孤儿进程、守护进程:含义、区别与生命周期详解
c++
zhanghaha131410 小时前
C++ 的类是什么(新手保姆讲解,配合 Qt 对照理解)
c++
aqiu11111110 小时前
【C++算法打怪专栏】LeetCode 402. 移掉 K 位数字(单调栈 + 贪心)
c++·算法·leetcode
(Charon)10 小时前
【C++面试】线程并发与异步:区别、实现原理及使用场景
开发语言·c++
JMchen11 小时前
实战项目一——实现一个高性能图片滤镜App
android·c++·性能优化
码匠许师傅11 小时前
【C++三方组件】libpqxx:PostgreSQL 的 C++ 客户端
开发语言·c++·postgresql
H.莓飛11 小时前
【C++】内存管理
linux·开发语言·jvm·c++·visual studio
longlongzihan12 小时前
从LeetCode 19. 删除链表的倒数第 N 个结点深入理解“哨兵节点”
c++·算法·leetcode·链表
爱吃提升12 小时前
Dev-C++ 5.11 完整版快捷键大全(信奥/初学适用)
c语言·c++
SWAGGY..13 小时前
【C++进阶】:(10)哈希表的原理与实现——从哈希函数到哈希桶
c++·哈希算法·散列表