多态语法,析构多态

news/2025/4/2 5:43:02/

目录

多态的构成条件

虚函数重写:


多态的构成条件

多态是在不同继承关系的类对象,去调用同一函数,产生了不同的行为。比如 Student 继承了
Person Person 对象买票全价, Student 对象买票半价。
继承中要 构成多态两个条件
1. 必须通过基类的指针或者引用调用虚函数
2. 被调用的函数必须是虚函数,且派生类必须对基类的虚函数进行重写


虚函数重写:

1:重写虚函数 ----  函数名,参数,返回值必须相同

2:另外细节  派生类的重写虚函数可以不加virtual(但是建议大家都加上)

3:另外细节  协变 返回值可以不同,但要求返回值必须是父子关系的指针和引用(使用场景很少)

4:析构函数加virtual是不是虚函数重写?

那为什么要他们构成重写呢?下面举一个案列

我们期望delete p 能指向谁调用谁,而不是跟p的类型有关系 ,如果delete跟p的类型有关系,那永远是调用父类的delete,这不扯淡吗。

现实场景中父类的指针p有可能指向父类,但也有可能指向子类,所以p应该是指向父类调用父类,指向子类调用子类

所以我们期望在p->destructor 是一个多态调用而不是一个普通调用


http://www.ppmy.cn/news/1101218.html

相关文章

OpenCV 08(图像滤波器 算子)

一、 索贝尔(sobel)算子 边缘是像素值发生跃迁的位置,是图像的显著特征之一,在图像特征提取,对象检测,模式识别等方面都有重要的作用。 人眼如何识别图像边缘? 比如有一幅图,图里面有一条线,左边很亮,右边很暗,那人眼就很容易…

Gartner发布中国科技报告:数据编织和大模型技术崭露头角

近日,全球知名科技研究和咨询机构Gartner发布了关于中国数据分析与人工智能技术的最新报告。报告指出,中国正迎来数据分析与人工智能领域的蓬勃发展,预计到2026年,将有超过30%的白领工作岗位重新定义,生成式人工智能技…

Jenkins介绍

Jenkins介绍 持续集成、持续部署的工具很多,其中Jenkins是一个开源的持续集成平台。 Jenkins涉及到将编写完毕的代码发布到测试环境和生产环境的任务,并且还涉及到了构建项目等任务。 Jenkins需要大量的插件保证工作,安装成本较高&#xff0…

高忆管理:军工板块走高,奥普光电涨停,恒宇信通等大涨

军工板块8日盘中发力走高,到发稿,晨曦航空、恒宇信通涨超12%,腾景科技涨逾11%,奥普光电涨停,霍莱沃、新余高科涨超7%。 对于该板块,组织表示,受职业增速下降以及“十四五”中期调整等不确定性因…

tcp记录

网络传输:大小端 Qt网络编程实现TCP通信 TCP/IP通讯与socket编程 Qt一步步搭建TcpServer1——封装QTcpServer,QTcpSocket qtcpserver官方文档 Python address already in use 服务器端的端口号和客户端的端口号没有关系 一般服务器是需要BIND指定端口号…

用“居委会”实现差异化竞争,蔚来的品牌社区是怎样创造价值的?|新能源车专题研究...

主笔:浣芳黛 出品:增长黑盒研究组 增长黑盒近期开展的新能源车专题研究,旨在深入挖掘新势力们营销与运营的“真经”,上一期研究了极氪之后,马上有热心读者在后台求写蔚来。毋庸置疑,在造车新势力这条竞争日…

长安链、趣链和百度超级链BaaS服务平台对比

No.Functions长安链趣链百度超级链1服务平台的部署方式dockerdockerdocker2多链长安链试用版只支持趣链 内部版支持fabric等fabric等外部链的支持尚不明确3多账本支持支持支持4平台上建链支持内部版支持正式版支持5纳管/订阅/导入链支持支持正式版支持6一个主机多个节点支持支持…

挂号预约系统

✌全网粉丝20W,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取项目下载方式🍅 一、项目背景介绍: 基础数据管理子系统主…