C++笔记之重载和重写辨别

C++笔记之重载和重写辨别

code review!

文章目录

  • C++笔记之重载和重写辨别
    • 重载(overloading)
    • 重写(Overriding)

在C++中,重载(overloading)和重写(overriding)是面向对象编程中的两个重要概念,它们用于不同的目的和场景。

重载(overloading)

重载(Overloading)是指在同一个作用域内,通过改变函数的参数列表来定义具有相同名称但不同参数的多个函数。重载函数可以具有相同的名称,但是参数类型、参数个数或参数顺序必须不同。重载函数的选择是在编译时进行的,根据调用时提供的参数类型来选择合适的函数。

下面是一个重载函数的例子:
在这里插入图片描述

在上面的例子中,print 函数被重载了两次,一次接受整数参数,另一次接受浮点数参数。根据传递的参数类型,编译器会选择合适的重载函数进行调用。

重写(Overriding)

重写(Overriding)是指在派生类中重新定义基类中已有的虚函数。派生类可以通过重写基类的虚函数来提供自己的实现,从而覆盖基类中的实现。重写函数必须具有与基类函数相同的函数签名(包括函数名、参数列表和返回类型)。

下面是一个重写函数的例子:
在这里插入图片描述

在上面的例子中,Shape 类中的 draw 函数被声明为虚函数,并在派生类 Circle 中进行了重写。在 main 函数中,创建了一个指向 Circle 对象的 Shape 指针,并调用了 draw 函数。由于 draw 函数是虚函数,并且指针类型是 Shape*,所以会调用派生类 Circle 中的重写函数。

总结:

  • 重载是指在同一个作用域内,通过改变函数的参数列表来定义具有相同名称但不同参数的多个函数。重载函数的选择是在编译时进行的,根据调用时提供的参数类型来选择合适的函数。
  • 重写是指在派生类中重新定义基类中已有的虚函数。派生类通过重写虚函数来提供自己的实现,从而覆盖基类中的实现。重写函数必须具有与基类函数相同的函数签名。重写的选择是在运行时进行的,根据对象的实际类型来选择合适的函数。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

笔记69:Conv1d 和 Conv2d 之间的区别

笔记地址:D:\work_file\(4)DeepLearning_Learning\03_个人笔记\4. Transformer 网络变体 a a a a a a a a a a a

设计模式-门面模式(Facade)

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、定义二、结构 前言 在组件构建过程中,某些接口之间直接依赖会带来很多问题,甚至无法直接实现。采用一层间接接口,来隔离…

SpringBoot报No qualifying bean of type ‘com.lzk.mapper.UserMapper‘ available

这个异常是SpringBoot程序没有找到要Bean&#xff0c;这里提示找不到UserMapper&#xff0c;有以下三种解决方式&#xff1a; 在UserMapper上添加注解MapperMapper public interface UserMapper extends BaseMapper<User> { }在启动类上进行Mapper包扫描&#xff0c;不用…

【IC前端虚拟项目】工程目录组织说明

【IC前端虚拟项目】数据搬运指令处理模块前端实现虚拟项目说明-CSDN博客 文档目录在“MVU芯片前端设计验证虚拟项目”中&#xff0c;截至本篇文章时&#xff0c;包含了MVU_FS.md/project_req.md和mvu_vp_list.xlsx三个文件。 MVU_FS是模块的方案文档&#xff0c;除了feature和…

浅谈CompletableFuture

作者简介&#xff1a;大家好&#xff0c;我是smart哥&#xff0c;前中兴通讯、美团架构师&#xff0c;现某互联网公司CTO 联系qq&#xff1a;184480602&#xff0c;加我进群&#xff0c;大家一起学习&#xff0c;一起进步&#xff0c;一起对抗互联网寒冬 回顾FutureTask 之前我…

安全高效 江西变电站成功应用国家电网无人机巡检

随着电力需求的迅速增长&#xff0c;电网的巡检、维护与保养变得越来越重要。为迎接这一挑战&#xff0c;江西供电公司的一座变电站成功引入了复亚智能国家电网无人机巡检系统&#xff0c;在提升巡检水平、开创新型巡检模式方面做出了重要尝试&#xff0c;为电网设备的高效巡检…

EDA 数字时钟

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、数字时钟是什么&#xff1f;二、EDA里面数码管的显示1.元件模型2.参考程序3. 实验仿真波形4.实验现象5. 仿真问题 三、显示时钟1. 时钟电路模块2.参考程序3…

gRPC .net学习

学习helloworld server用.net client有.net的控制台 和 unity server端 直接使用vs2022创建(需自行看有无装asp.net哦),搜索gPRC,使用6.0吧&#xff0c;创建工程后直接F5跑起来,服务端到此完成 .net控制台client,创建新的控制台,使用NuGet,然后导入server端的Protos文件夹 学…

基于Jedis来探讨池化技术

为什么需要池化技术 系统运行时必然是需要数据库连接、线程等一些重量级对象&#xff0c;频繁的创建这种对象对性能有着不小的开销&#xff0c;所以为了减少没必要的创建和开销&#xff0c;我们就用到了池化技术。 通过创建一个资源池来保存这些资源便于后续的复用&#xff0c…

【C++初阶】七、内存管理(C/C++内存分布、C++内存管理方式、operator new / delete 函数、定位new表达式)

相关代码gitee自取&#xff1a; C语言学习日记: 加油努力 (gitee.com) 接上期&#xff1a; 【C初阶】六、类和对象&#xff08;初始化列表、static成员、友元、内部类&#xff09;-CSDN博客 目录 一 . C/C内存分布 C/C中程序内存区域划分&#xff1a; 二 . C内存管理方式 …

16.Java程序设计-基于SSM框架的android餐厅在线点单系统App设计与实现

摘要&#xff1a; 本研究旨在设计并实现一款基于SSM框架的Android餐厅在线点单系统&#xff0c;致力于提升餐厅点餐流程的效率和用户体验。通过整合Android移动应用和SSM框架的优势&#xff0c;该系统涵盖了用户管理、菜单浏览与点单、订单管理、支付与结算等多个功能模块&…

用户登录权限

文章目录 [TOC](文章目录) 前言一、 Cookie与session1.HTTP无状态2.cookie 和 session 的生命周期2.1 cookie 生命周期影响因素2.2 session 生命周期影响因素 3.cookie 和 session 的区别4.工作原理3 用户登录Node.js和Express验证session 二、JSON Web Token1. JWT 介绍2. JWT…

C#使用Matrix类对Dicom图像的放缩

C#使用Matrix类对Dicom图像的放缩&#xff0c;使用Matrix 1.同时操作水平、垂直同时放缩 // 创建一个 Matrix 对象 Matrix m_Matrix new Matrix();//放缩参数 float inputZoom1.2f; m_Matrix.Scale(inputZoom, inputZoom, MatrixOrder.Append); 2.操作水平&#xff08;X轴…

前端使用插件预览pdf、docx、xlsx、pptx格式文件

PDF预览 H5页面pdf预览 插件&#xff1a;pdfh5 版本&#xff1a;“pdfh5”: “^1.4.7” npm install pdfh5 import PdfH5 from "pdfh5"; import "pdfh5/css/pdfh5.css";// methods this.$nextTick(() > {this.pdfH5 new PdfH5("#pdf", {pd…

【算法系列篇】递归、搜索和回溯(二)

文章目录 前言1. 两两交换链表中的节点1.1 题目要求1.2 做题思路1.3 代码实现 2. Pow(X,N)2.1 题目要求2.2 做题思路2.3 代码实现 3. 计算布尔二叉树的值3.1 题目要求3.2 做题思路3.3 代码实现 4. 求根节点到叶结点数字之和4.1 题目要求4.2 做题思路4.3 代码实现 前言 前面为大…

计算机毕业设计springboot+ssm停车场车位预约系统java

管理员不可以注册账号 停车位包括车位所在楼层、车位编号、车位类型(全时间开放/高峰期开放)、预定状态等 用户预约时要求支付预约时间段的停车费用 违规行为&#xff1a;1.停车超过预约时间段 2.预约未使用 于系统的基本要求 &#xff08;1&#xff09;功能要求&am…

6G来袭,真的有必要吗?

6G来袭&#xff0c;6G标准将在2025年完成制定&#xff0c;2030年商用。当5G都还没玩明白的时候&#xff0c;6G又来了。 这次6G又提出了三个全新高大上场景&#xff0c;感知通信、人工智能通信、天地一体泛在物联&#xff0c;精英们还说&#xff0c;未来要连接很多机器人、元宇宙…

PHP基础 - 循环与条件语句

循环语句 1)for循环: 重复执行一个代码块指定的次数。 for ($i = 0; $i < 5; $i++) { // 初始化 $i 为 0,每次循环后将 $i 值增加 1,当 $i 小于 5 时执行循环echo "The number is: $i \n"; // 输出当前 $i 的值并换行 }// 循环输出结果为: // The number …

mysql字段设计规范:使用unsigned(无符号的)存储非负值

如果一个字段存储的是数值&#xff0c;并且是非负数&#xff0c;要设置为unsigned&#xff08;无符号的&#xff09;。 例如&#xff1a; 备注&#xff1a;对于类型是 FLOAT、 DOUBLE和 DECIMAL的&#xff0c;UNSIGNED属性已经废弃了&#xff0c;可能在mysql的未来某个版本去…

mysql分别在windows和linux下的备份策略

嗟乎&#xff01; 一、概述 mysql数据库该怎么备份呢&#xff1f; 数据库备份有几个概念&#xff1a;全量备份、增量备份、差异备份。当然啦&#xff0c;数据库备份又有冷备份和热备份&#xff0c;即物理备份和逻辑备份之分。冷备份就是将mysql停了&#xff0c;然后直接拷贝…