给个简单的例子关于函数重载
时间: 2023-08-12 17:17:45 浏览: 42
好的,以下是一个简单的例子:
```c++
#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 a = 1, b = 2;
double c = 1.5, d = 2.5;
cout << add(a, b) << endl; // 输出 3
cout << add(c, d) << endl; // 输出 4.0
return 0;
}
```
在这个例子中,我们定义了两个同名函数 `add`,一个是用于整数相加的函数,一个是用于浮点数相加的函数。当我们在 `main` 函数中分别传入整数和浮点数时,会自动匹配合适的函数进行调用。这就是函数重载的作用。
相关问题
请给我一个函数重载的厘子
当我们在编写程序时,函数重载是指在同作用域内可以定义多个同名函数,但是这些函数的参数列表必须不同。这样,根不同的参数列表,编译器可以根据调用时提供的参数来确定要调用的具体函数。
以下是一个简单的C++函数重载的例子,展示了两个名为"add"的函数,分别用于计算两个整数和两个浮点数的和:
```cpp
#include <iostream>
int add(int a, int b) {
return a + b;
}
float add(float a, float b) {
return a + b;
}
int main() {
int result1 = add(3, 5);
float result2 = add(2.5f, 4.7f);
std::cout << "Result 1: " << result1 << std::endl;
std::cout << "Result 2: " << result2 << std::endl;
return 0;
}
```
在上面的例子中,我们定义了两个add函数,一个用于整数相加,另一个用于浮点数相加。根据调用时提供的参数类型,编译器会自动选择合适的函数进行调用。这样,我们就可以通过函数重载实现不同参数类型的灵活计算。
希望这个例子对您有所帮助!如果您还有其他问题,请随时提问。
函数重载
函数重载(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 类型的。在调用时,编译器会根据实参的类型来确定调用哪个函数。