菱形继承(多继承)

1. 什么是菱形继承

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

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

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

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

3. 如何解决?

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

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

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

参考

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

菱形继承问题

相关推荐
zhangren024685 小时前
PHP vs C++:从Web脚本到系统编程的终极对比
开发语言·c++·php
小则又沐风a5 小时前
类和对象(C++)---上
java·c++·算法
临溟夜空的繁星5 小时前
C++STL—— list
开发语言·c++·list
原来是猿5 小时前
关于【进程池阻塞 + 子进程未回收问题】
linux·服务器·c++
C澒6 小时前
PC 桌面富应用:速分客户端
前端·c++·electron·web app
深邃-6 小时前
数据结构-双向链表
c语言·开发语言·数据结构·c++·算法·链表·html5
2401_878530216 小时前
分布式任务调度系统
开发语言·c++·算法
艾莉丝努力练剑6 小时前
【Linux:文件】文件基础IO进阶
linux·运维·服务器·c语言·网络·c++·centos
程序猿编码6 小时前
基于ncurses的TCP连接可视化与重置工具:原理与实现(C/C++代码实现)
linux·c语言·网络·c++·tcp/ip
nunca_te_rindas6 小时前
算法刷体小结汇总(C/C++)20260328
c语言·c++·算法