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

c++语法之函数重载

引例

我们在C语言里面写add函数的时候,只能支持一种类型的相加,除非我们创建多个add函数:

但是这样写并不方便,于是就有了c++的函数重载。

函数重载

函数重载就是可以将多个参数类型、顺序、数量不同,实现逻辑相同的函数集成一个函数名相同的整体叫做函数的重载。编译器会通过参数的不同来调用不同的函数

例如我们以add函数来示范:

通过以上代码就完成了add函数的重载。

那么我们就可以实现只调用一个函数名来实现几个函数的使用。

可以函数重载的几种情况

变量类型不同

上面的add函数就是变量类型不同的函数重载

变量顺序不同

下面这种情况就是变量顺序的不同产生的重载

变量数量不同

下面这种就是变量数量的不同产生的重载

不能重载的情况

只是返回值不同不能形成重载

我们也可以这样理解,我们调用一个这种重载的函数后,是使用哪种变量来接受它的返回值呢?

无法确定,所以这种重载不存在。

模糊不清的重载

我们知道缺省参数是可以不传参的,那么下面的两个重载函数就有了矛盾

当我们调用fun(),我们到底是调用没有参数的fun函数,还是调用没有传值的缺省参数的函数fun呢?

显然是有矛盾的,所以这种情况是错误的,虽然他的确是重载,但是有逻辑冲突。编译时是会报错的。

重载的作用

重载能让我们简化函数,将几个功能相同的函数结合起来。既让程序员免去函数命名的麻烦,让代码更简洁,可读性更好,也让程序员在调用这类函数时只要记住一个函数。

http://www.lryc.cn/news/395877.html

相关文章:

  • EtherCAT主站IGH-- 11 -- IGH之fmmu_config.h/c文件解析
  • 如何使用IDEA快速清理无效代码(荣耀典藏版)
  • ELK优化之Filebeat部署
  • 蝙蝠优化算法(Bat Algorithm,BA)及其Python和MATLAB实现
  • vscode运行java中文乱码,引发的mac配置问题
  • MySQL之备份与恢复(五)
  • 离线运行Llama3:本地部署终极指南_liama2 本地部署
  • 【YOLO8系列】(二)YOLOv8环境配置,手把手嘴对嘴保姆教学
  • MFC常见问题解决
  • 学生管理系统 | python
  • opencv读取视频文件夹内视频的名字_时长_帧率_分辨率写入excel-cnblog
  • js对象的方法速览---数组的静态方法,实例方法和属性合集,各包含一个示例
  • Redis基础教程(十四):Redis连接
  • GraphRAG——一个基于图的检索增强生成的开源项目【送源码】
  • 什么是 VueQuill(前端的富文本编辑器)?
  • 从海上长城到数字防线:视频技术在海域边防现代化中的创新应用
  • 《信息技术与信息化 》是什么级别的期刊?是正规期刊吗?能评职称吗?
  • 【最新版】手把手Claude 3.5 Sonnet 详细步骤注册方法!
  • 代理模式和Java中的动态代理【开发实践】
  • 【Linux】进程间通信——匿名管道
  • React Native与React Native Web:跨平台开发的新选择
  • 【从零开始实现stm32无刷电机FOC】【理论】【3/6 位置、速度、电流控制】
  • 使用MySQLInstaller配置MySQL
  • 命令执行(RCE)面对各种过滤,骚姿势绕过总结
  • 复杂的数仓项目,涵盖了从数据采集、处理、存储到可视化的整个流程
  • 三相感应电机的建模仿真(3)基于ABC相坐标系Level2 S-Fun以及定子串不对称电抗起动过程仿真分析
  • 了解Adam和RMSprop优化算法
  • 对于配置LLM,集显和独显的具体区别和影响
  • uniapp上架到appstore遇到的问题
  • 每天10个vue面试题(一)