当前位置: 首页 > news >正文

菱形继承、菱形虚拟继承、菱形继承中多态问题、菱形虚拟继承中多态问题

菱形继承以及菱形继承中的多态问题

  • 一、对象模型
    • (一)菱形继承 & 菱形虚拟继承
    • (一)菱形继承中多态 & 菱形虚拟继承中多态
  • 二、总结

本文主要叙述菱形继承、菱形虚拟继承、菱形继承中多态、菱形虚拟继承中多态,这四种情况下的对象模型,这里的多态主要指的是虚函数指针以及虚函数表在对象模型中是怎样继承的

一、对象模型

(一)菱形继承 & 菱形虚拟继承

在这里插入图片描述

(一)菱形继承中多态 & 菱形虚拟继承中多态

在这里插入图片描述

二、总结

1、菱形继承:数据是独有的,各自都有一份
2、菱形虚拟继承:当会发生数据冗余的时候,数据是共享的,共享同一份数据
3、非菱形继承中虚函数指针继承情况:单继承中会继承父类虚函数指针,自己类中的虚函数地址存放在继承下来的虚函数指针所指向的虚函数表中;多继承中继承几个父类就继承几个虚函数指针,自己类中的虚函数地址存放在第一个继承下来的虚函数指针所指向的虚函数表中。注意:这里说的虚函数指针继承意思是我也会有一个虚函数指针,并不代表虚函数里面的值都是一样的(每个类都有一个各自的虚函数表,实例化的对象指向自己类的虚函数表)
4、菱形继承和虚拟继承中虚函数指针继承情况:菱形继承中虚函数指针依旧遵循菱形继承规则+虚函数指针单继承&多继承规则,菱形虚拟继承中虚函数指针在单继承中会有自己独有的虚函数指针比较特殊

相关文章:

  • 2024外研社综合能力大赛第一场真题
  • 【redis-02】深入理解redis中RBD和AOF的持久化
  • 数据科学基石:解析属性类型体系——从标称到比率,全面洞察数据分类机制
  • 快速开发拍卖平台,成品源码如何满足你的需求?
  • python测试开发---前后端交互Axios
  • Apache Iceberg构建高性能数据湖
  • 软件开发人员需要了解的知识
  • 代码随想录算法训练营第十四天|递归 226.翻转二叉树 101. 对称二叉树 104.二叉树的最大深度 111.二叉树的最小深度
  • vue3【实战】响应式主题(实时获取页面比例,指定尺寸内按比例缩放,超过指定尺寸保持高度不变的图片)
  • 云原生|浅谈云原生中的对象存储之MinIO 的使用
  • 回归预测 | Matlab基于SO-SVR蛇群算法优化支持向量机的数据多输入单输出回归预测
  • 【Linux】常用指令【更详细,带实操】
  • 数据结构编程实践20讲(Python版)—01数组
  • idea2021git从dev分支合并到主分支master
  • 什么是机器学习?
  • 【刷算法】从上往下打印二叉树
  • CentOS学习笔记 - 12. Nginx搭建Centos7.5远程repo
  • E-HPC支持多队列管理和自动伸缩
  • github指令
  • Java,console输出实时的转向GUI textbox
  • Java的Interrupt与线程中断
  • nfs客户端进程变D,延伸linux的lock
  • spring boot 整合mybatis 无法输出sql的问题
  • Theano - 导数
  • 闭包,sync使用细节
  • 分享一个自己写的基于canvas的原生js图片爆炸插件
  • 聊聊flink的BlobWriter
  • 如何在 Tornado 中实现 Middleware
  • 用Canvas画一棵二叉树
  • 在Unity中实现一个简单的消息管理器
  • 这几个编码小技巧将令你 PHP 代码更加简洁
  • ​【已解决】npm install​卡主不动的情况
  • # 学号 2017-2018-20172309 《程序设计与数据结构》实验三报告
  • #include到底该写在哪
  • #图像处理
  • $redis-setphp_redis Set命令,php操作Redis Set函数介绍
  • (+3)1.3敏捷宣言与敏捷过程的特点
  • (1)(1.19) TeraRanger One/EVO测距仪
  • (2009.11版)《网络管理员考试 考前冲刺预测卷及考点解析》复习重点
  • (附源码)ssm智慧社区管理系统 毕业设计 101635
  • (回溯) LeetCode 78. 子集
  • (四)activit5.23.0修复跟踪高亮显示BUG
  • (原創) X61用戶,小心你的上蓋!! (NB) (ThinkPad) (X61)
  • (转)程序员技术练级攻略
  • (转)可以带来幸福的一本书
  • (轉貼) UML中文FAQ (OO) (UML)
  • (轉貼) 蒼井そら挑戰筋肉擂台 (Misc)
  • ***利用Ms05002溢出找“肉鸡
  • .gitignore文件使用
  • .NET delegate 委托 、 Event 事件
  • .NET Standard 支持的 .NET Framework 和 .NET Core
  • .NET 反射的使用
  • .net流程开发平台的一些难点(1)
  • .pyc文件还原.py文件_Python什么情况下会生成pyc文件?
  • .skip() 和 .only() 的使用