📅  最后修改于: 2023-12-03 14:59:51.778000             🧑  作者: Mango
函数重载指的是在同一个作用域中定义多个函数名相同但参数列表不同的函数。
C++中函数的参数数量或类型可能需要灵活的变化。当我们需要实现一个功能,但是需要处理的参数类型或数量不同,就需要使用函数重载。
函数重载必须要满足以下条件之一:
函数的参数列表不同
例如函数参数的类型不同,或者参数的个数不同。
函数的返回类型不同
如果只有返回类型不同,其他参数列表相同,不能实现函数重载。
函数的默认参数不同
如果函数的参数列表和返回类型相同,但一个函数有默认参数而另一个没有,则它们可以被重载。
当我们调用一个重载函数时,编译器会自动根据传入的参数类型和数量,匹配到对应的函数。
指针和引用也可以用于函数重载
C++允许使用指针或引用作为函数的参数,所以指针类型或引用类型也可以用于函数重载。
函数重载需要用到不同的参数类型
如果需要使用函数重载,那么不同的函数需要使用到不同的参数类型。
函数重载不能通过返回类型区分
可以通过返回类型判断函数是否重载的说法是错误的,不能通过返回类型区分函数重载。
在函数重载定义时,可以省略参数名,只写参数类型,也可以加上参数名。但在函数调用时,必须加上参数名。
#include<iostream>
using namespace std;
void fun(int a)
{
cout << "a: " << a << endl;
}
void fun(int a, int b)
{
cout << "a: " << a << " b: " << b << endl;
}
int main()
{
fun(10); //调用函数fun(int)
fun(10, 20); //调用函数fun(int, int)
return 0;
}
以上输出结果为:
a: 10
a: 10 b: 20
Markdown 代码片段如下:
# C++函数重载
函数重载指的是在同一个作用域中定义多个函数名相同但参数列表不同的函数。
## 为什么需要函数重载
C++中函数的参数数量或类型可能需要灵活的变化。当我们需要实现一个功能,但是需要处理的参数类型或数量不同,就需要使用函数重载。
## 函数重载的规则
函数重载必须要满足以下条件之一:
- 函数的参数列表不同
例如函数参数的类型不同,或者参数的个数不同。
- 函数的返回类型不同
如果只有返回类型不同,其他参数列表相同,不能实现函数重载。
- 函数的默认参数不同
如果函数的参数列表和返回类型相同,但一个函数有默认参数而另一个没有,则它们可以被重载。
## 函数重载的调用
当我们调用一个重载函数时,编译器会自动根据传入的参数类型和数量,匹配到对应的函数。
## 函数重载的注意事项
- 指针和引用也可以用于函数重载
C++允许使用指针或引用作为函数的参数,所以指针类型或引用类型也可以用于函数重载。
- 函数重载需要用到不同的参数类型
如果需要使用函数重载,那么不同的函数需要使用到不同的参数类型。
- 函数重载不能通过返回类型区分
可以通过返回类型判断函数是否重载的说法是错误的,不能通过返回类型区分函数重载。
## 函数名后面加括号
在函数重载定义时,可以省略参数名,只写参数类型,也可以加上参数名。但在函数调用时,必须加上参数名。
```C++
#include<iostream>
using namespace std;
void fun(int a)
{
cout << "a: " << a << endl;
}
void fun(int a, int b)
{
cout << "a: " << a << " b: " << b << endl;
}
int main()
{
fun(10); //调用函数fun(int)
fun(10, 20); //调用函数fun(int, int)
return 0;
}
以上输出结果为:
a: 10
a: 10 b: 20