函数重载
时间: 2023-12-03 21:46:00 浏览: 29
函数重载(Function Overloading)是指在同一作用域内,可以定义多个名称相同但参数个数、类型或顺序不同的函数,编译器根据实参的类型、个数及顺序确定调用哪个函数。函数重载可以提高代码的可读性和复用性。
函数重载的规则如下:
1. 函数名称必须相同。
2. 参数个数、类型或顺序必须不同。
3. 函数的返回类型可以相同也可以不同。
注意事项:
1. 函数重载不仅仅是参数数量不同,还可以是参数类型不同,或者参数顺序不同。
2. 仅返回类型不同的函数不能作为函数重载。
3. 函数重载不允许仅通过返回类型的不同区分函数。
4. 函数重载可以发生在同一个类中,或者在不同的类之间。
5. 在调用函数时,编译器会根据参数的类型、个数及顺序来决定调用哪个函数。如果没有找到匹配的函数,则会发生编译错误。
下面是一个函数重载的例子:
```
#include <iostream>
using namespace std;
int add(int a, int b) {
return a + b;
}
double add(double a, double b) {
return a + b;
}
int main() {
int x = add(1, 2);
double y = add(1.5, 2.5);
cout << "x = " << x << endl;
cout << "y = " << y << endl;
return 0;
}
```
输出结果为:
```
x = 3
y = 4
```
在这个例子中,定义了两个名字相同但参数类型不同的函数 add,一个是 int 类型的,另一个是 double 类型的。在调用时,编译器会根据实参的类型来确定调用哪个函数。