c++语法之函数重载

引例

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

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

函数重载

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

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

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

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

可以函数重载的几种情况

变量类型不同

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

变量顺序不同

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

变量数量不同

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

不能重载的情况

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

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

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

模糊不清的重载

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

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

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

重载的作用

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

相关推荐

  1. C++函数重载

    2024-07-10 06:16:05       50 阅读
  2. C++函数重载

    2024-07-10 06:16:05       46 阅读
  3. C++:重载函数

    2024-07-10 06:16:05       34 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-10 06:16:05       99 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-10 06:16:05       107 阅读
  3. 在Django里面运行非项目文件

    2024-07-10 06:16:05       90 阅读
  4. Python语言-面向对象

    2024-07-10 06:16:05       98 阅读

热门阅读

  1. 2024.7.9总结(找对象的逻辑)

    2024-07-10 06:16:05       31 阅读
  2. 使用ADB命令控制logcat日志本地存储功能

    2024-07-10 06:16:05       34 阅读
  3. matlab实现pid控制空调温度

    2024-07-10 06:16:05       30 阅读
  4. 深入浅出Transformer:大语言模型的核心技术

    2024-07-10 06:16:05       32 阅读
  5. NLP - Softmax与层次Softmax对比

    2024-07-10 06:16:05       23 阅读
  6. Rust 启航:为何选择 Rust 及其核心价值

    2024-07-10 06:16:05       31 阅读
  7. 安装Go语言常用工具

    2024-07-10 06:16:05       31 阅读
  8. WPF自定义模板--Lable

    2024-07-10 06:16:05       34 阅读
  9. 自动化发布:Conda包依赖的持续集成之旅

    2024-07-10 06:16:05       33 阅读