什么是函数重载?试举例说明
时间: 2023-08-08 07:13:27 浏览: 50
函数重载是指在同一个作用域内,可以定义多个名称相同但参数类型、参数个数或参数顺序不同的函数,使得它们可以用相同的函数名进行调用,但实际上调用的是不同的函数。
例如,我们可以定义一个名为"sum"的函数,用于求两个数的和:
```
int sum(int a, int b) {
return a + b;
}
```
但如果我们想要求三个数的和,我们不能再使用同样的函数名"sum",因为函数名相同,编译器无法区分它们。这时候就可以使用函数重载,定义一个新的函数名为"sum",但参数个数改为三个:
```
int sum(int a, int b, int c) {
return a + b + c;
}
```
这样,我们就可以通过不同的参数个数来调用不同的函数,而不需要再为每个函数取不同的函数名。
相关问题
什么是函数重载,试举例说明
函数重载是指在同一个作用域内,可以定义多个同名但参数列表不同的函数。编译器会根据函数调用时传入的参数类型、个数、顺序等信息,来判断应该调用哪个重载函数。
例如,下面是两个同名但参数列表不同的函数:
```c++
int add(int a, int b) {
return a + b;
}
double add(double a, double b) {
return a + b;
}
```
这两个函数都叫做add,但一个接受两个int参数,一个接受两个double参数。当我们调用add函数时,编译器会根据传入的参数类型来确定应该调用哪个函数:
```c++
int x = add(1, 2); // 调用第一个add函数,返回3
double y = add(1.5, 2.5); // 调用第二个add函数,返回4.0
```
注意,在函数重载时,函数名和返回值类型不参与函数重载的判断,只有参数列表才会被考虑。因此,下面的代码是错误的:
```c++
int add(int a, int b) {
return a + b;
}
double add(int a, int b) {
return a + b;
}
```
这两个函数同样叫做add,且参数列表也相同,因此编译器无法确定应该调用哪个函数,会报重复定义的错误。
举例说明什么叫函数重载?函数重载有什么作业?
函数重载是指在同一个作用域中,可以定义多个同名函数,但这些同名函数的参数列表必须不同(参数个数不同或者参数类型不同等)。这样,当程序调用该函数时,编译器会根据传入的参数类型、个数等信息,来确定调用哪个函数。
函数重载的作用主要有以下几点:
1. 提高代码可读性:函数名相同,但是根据参数不同,可以让程序员更直观地理解函数的作用。
2. 方便函数调用:不需要为了实现相似的功能写出多个函数名,只需要在同一个函数名下根据参数的不同来实现。
3. 函数重载可以提高代码的复用性和灵活性,减少代码的冗余和冗长。
例如,C++中可以定义两个同名的函数,一个函数接受整型参数,一个函数接受浮点型参数,如下所示:
```
void func(int x){
// do something
}
void func(float x){
// do something
}
```
这里就是函数重载的例子,当调用func函数时,编译器会根据传入的参数来确定调用哪个函数。