C++ 多态向上转型详解

文章目录

    • 1 . 前言
    • 2 . 多态
    • 3 . 向上转型
    • 4 . 总结


【极客技术传送门】 : https://blog.csdn.net/Engineer_LU/article/details/135149485


1 . 前言

  • 此篇博文详解C++的多态向上转型
  • 平台 : Qt

2 . 多态

【Q】什么是多态?
【A】解释如下 :

  1. 通俗来说,就是多种形态,具体点就是去完成某个行为,当不同的对象去完成时会产生出不同的状态。在编程语言和类型论中,多态指为不同数据类型的实体提供统一的接口。多态类型可以将自身所支持的操作套用到其它类型的值上。
  2. 比如父亲有一个儿子,父亲是荒古圣体,儿子自己修炼出了混沌体同时也继承了父亲的荒古圣体,有一天,父亲受伤了,儿子把混饨体的真血移植给父亲,父亲因此可以使用混饨体的能力,这就是向上转型,儿子的能力移植到父亲身上

3 . 向上转型

【Q】什么是向上转型?
【A】儿子把混沌体体的真血移植给父亲,父亲阴差阳错下可以用儿子独有的能力,这样不是向下转型吗,为什么说是向上,这里的向上指的是儿子的能力赋予了父亲,因此称为向上转型
在这里插入图片描述

上图中最后父亲可以调用儿子混沌体的能力,但这有个条件,就是父亲受伤了(如图中Father的func函数是虚函数),因此当移植了儿子的真血后,可以使用儿子的能力,但是如果父亲没有受伤或伤的很轻呢?(Father的func函数不是虚函数),如下图

在这里插入图片描述

父亲没受伤或伤的很轻,这时候即使移植了儿子的真血,依然用不到儿子的部分能力,因为把相同的部分排斥了,就好比父亲伤的只是肾,但是手脚还在,这时候移植了儿子的真血后,自己手脚是完好无缺的,会排斥新来的手脚功能,只是肾伤到了,因此不排斥儿子的肾功能,下次运功时调用的是儿子的肾功能!所以父亲即使移植了儿子混沌体的真血后,依然使不出混沌体的全部能力,身体的一部分会继续使用荒古圣体的能力!

4 . 总结

向上转型是把子类的能力给到父类,基于父类能否调用子类的能力,看父类自身的函数是不是虚函数,若是虚函数,则可以使用子类的能力,注意这里提到的能力,是父类子类都有接口,只是接口的具体实现不一样,如果父类没有子类的接口,却去调用子类的接口,在向上转型里是禁止的。

向上转型父类如果自己有实现优先调用自己的实现,如果自身虚函数,则调用子类方法

技术交流QQ群 : 745662457
群内专注 - 问题答疑,项目外包,技术研究

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/288679.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

八皇后问题(C语言/C++)超详细讲解/由浅入深---深入八皇后问题

介绍引入 在计算机科学中,八皇后问题是一个经典的回溯算法问题。这个问题的目标是找出一种在8x8国际象棋棋盘上放置八个皇后的方法,使得没有任何两个皇后能够互相攻击。换句话说,每一行、每一列以及对角线上只能有一个皇后。 想象一下&…

C++多态性——(3)动态联编的实现——虚函数

归纳编程学习的感悟, 记录奋斗路上的点滴, 希望能帮到一样刻苦的你! 如有不足欢迎指正! 共同学习交流! 🌎欢迎各位→点赞 👍 收藏⭐ 留言​📝 成功的秘诀就在于多努力一次&#xff…

Sam Altman的一天被曝光!每天15小时禁食、服用小剂量安眠药,尽可能避免开会

Sam Altman在经历了几天混乱的管理重组后,重新回到了OpenAI的CEO位置。在日常生活中,奥特曼与许多科技行业高管一样,痴迷于延长自己的寿命。 据报道,他还为应对末日场景(致命合成病毒的释放、核战争和人工智能攻击等&…

【AIGC摄影构图prompt】与重不同的绘制效果,解构主义+优美连拍提示效果

提取关键词构图: 激进解构主义 在prompt中,激进解构主义的画面效果可能是一种颠覆传统和权威的视觉呈现。这种画面可能以一种极端或激烈的方式表达对现有社会结构和观念体系的批判和质疑。 具体来说,这种画面效果可能包括: 破…

流媒体学习之路(WebRTC)——Pacer与GCC(5)

流媒体学习之路(WebRTC)——Pacer与GCC(5) —— 我正在的github给大家开发一个用于做实验的项目 —— github.com/qw225967/Bifrost目标:可以让大家熟悉各类Qos能力、带宽估计能力,提供每个环节关键参数调节接口并实现一个json全…

相关性与P值

相关性与P值 0 FQA:1 相关性与显著性的关系2 相关性分析3 使用medcalc进行相关性分析:参考文章: 0 FQA: 主要描述相关性和p值分别代表什么意义? 以及如何使用medcalc计算相关性和p值。 Q1:p值代表什么意义…

Document对象详解

前言 在前端开发中,DOM(文档对象模型)扮演着重要的角色。它允许我们使用JavaScript来与网页文档进行交互,实现动态的网页效果。DOM的核心部分之一就是Document对象,它代表了整个HTML文档。在本篇博客中,我们…

【笔记】书生·浦语大模型实战营——第一课

群公告 1月3日*更新 第一次课程视频链接:https://www.bilibili.com/video/BV1Rc411b7ns/,第一次课程只需要记笔记,没有作业。第一次课程(1月3日)和第二次课程(1月5日)到本周末(1月7日)截止,笔记记录在 知乎/CSDN/Github 或者任何你…

2023年互联网公司年度崩盘报告

B站崩了两次 2023年3月5日晚20:20左右,许多网友表示在使用B站时,手机和电脑端都无法访问视频详情页,且手机端无法查看收藏夹与历史记录。 8月4日晚间,距离上次事故5个月后,又有许多网友反馈B站图片(视频封…

定时器PWM控制RGB彩灯案例

1.脉冲宽度调制PWM PWM(Pulse Width Modulation)简称脉宽调制,是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术,广泛应用在测量、通信、工控等方面。   PWM的一个优点是从处理器到​​ ​被控系统​​​信号…

软碟通UltraISO制作U盘安装Ubuntu

清华大学开源软件镜像站https://mirrors.tuna.tsinghua.edu.cn/ 从里面下载ubuntu-22.04-desktop-amd64.iso UltraISO是一款非常不错的U盘启动盘制作工具,一直被许多网友们所喜欢,使用简单、方便。 UltraISO官方下载地址:https://cn.ultrais…

5年经验之谈 —— 为什么要做自动化测试?

自动化测试是一种软件测试方法,通过编写和使用自动化脚本和工具,以自动执行测试用例并生成结果 自动化旨在替代手动测试过程,提高测试效率和准确性 自动化测试可以覆盖多种测试类型,包括功能测试、性能测试、安全测试等&#xf…

网工内推 | 网络工程师,NP认证优先,上市公司,包吃,最高15薪

01 无锡先导智能装备股份有限公司 招聘岗位:高级网络工程师 职责描述: 1.依据项目规划方案提供硬件及网络方案设计; 2.面向客户提供网络技术支持,包括故障的解决、性能的优化、日常维护等; 3.和合作伙伴、供应商的技术…

NLP论文阅读记录 - 2021 | RefSum:重构神经总结

文章目录 前言0、论文摘要一、Introduction1.1目标问题1.2相关的尝试1.3本文贡献 二.前提堆叠重新排序 三.本文方法3.1 总结为两阶段学习3.1.1 基础系统3.1.2 元系统 3.2 重构文本摘要3.2.1 重构3.2.2 预训练重构3.2.3 微调重构3.2.4 应用场景3.2.4.1 重构为基础学习者3.2.4.2 …

Vue学习计划-Vue3--核心语法(一)OptionsAPI、CompositionAPI与setup

1. OptionsAPI与CompositionAPI Vue2的API设计是Options(配置)风格的Vue3的API设计是Composition(组合)风格的 Options API的弊端: Options类型的API,数据、方法、计算属性等,是分散在:data、methods、computed中的,若…

【Linux Shell】1. Shell 简述

文章目录 【 1. Shell 解释器、Shell语言、Shell脚本 】【 2. Shell 环境 】【 3. 一个简单的 Shell 脚本 】3.1 Shell 脚本的编写3.2 Shell 脚本的运行3.2.1 作为可执行程序运行 Shell 脚本3.2.2 作为解释器参数运行 Shell 脚本 【 1. Shell 解释器、Shell语言、Shell脚本 】 …

正则表达式 详解,10分钟学会

大家好,欢迎来到停止重构的频道。 本期我们讨论正则表达式。 正则表达式是一种用于匹配和操作文本的工具,常用于文本查找、文本替换、校验文本格式等场景。 正则表达式不仅是写代码时才会使用,在平常使用的很多文本编辑软件,都…

华为月薪25K的自动化测试工程师到底要会那些技能!

​前言 3年自动化测试软件测试工程师职业生涯中,我所经历过的项目都是以自动化测试为主的。由于自动化测试是一个广泛的领域,我将自己的经验整理了一下分享给大家,话不多说,直接上干货。 自动化测试的目标和实践选择合适的自动化…

2023 年博客总结

当无所事事,没有多少收获的时候,时间过得格外的快… 当充实有为,经常有收获有进步的时候,才觉得时间没有浪费… 2023年收获不多… 以前说孩子小,需要照顾所以没时间,我以为孩子大点就有时间了,…

Plantuml之甘特图语法介绍(二十八)

简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长! 优质专栏:Audio工程师进阶系列【原创干货持续更新中……】🚀 优质专栏:多媒…