在C ++中,可以使用同一个名称制作多个函数,这一概念称为函数重载。我们可以将相同的函数名称用于不同目的,并使用不同数量和类型的参数。
在函数重载中,函数名称将相同,但参数类型,参数顺序,参数数量必须不同。
C ++编译器通过检查调用中参数的数量,类型和顺序来选择适当的函数。函数重载通常用于创建多个具有相同名称的函数,这些函数执行相似的任务但针对不同的数据类型。
在程序中使用函数重载有以下优点:
避免对同一操作使用不同的函数名。
有助于轻松理解,调试和分组。
代码易于维护。
程序与外界之间的关系更易于理解。
函数重载不依赖于函数的返回类型。
请看以下功能:
int sumOfNumbers(int,int);
float sumOfNumbers(float,float); 如果您将调用类似(sumOfNumbers(10,20);和sumOfNumber(10.2,20.3);)
的函数,则这种类型的函数重载将产生错误“歧义调用重载函数”
要解决此问题,请使用10.2f(作为浮点值)和20.3f作为函数argemnts。
考虑例子
#include <iostream>
using namespace std;
//函数声明
int sumOfNumbers(int,int); //类型1-
int sumOfNumbers(int,int,int); //类型2-
int sumOfNumbers(int,float); //类型3-
float sumOfNumbers(float,float); //类型4-
int main(){
cout<<"Type -1 : SUM IS = "<< sumOfNumbers(10,20) << endl;
cout<<"Type -2 : SUM IS = "<< sumOfNumbers(10,20,30) << endl;
cout<<"Type -3 : SUM IS = "<< sumOfNumbers(10,20.0f) << endl;
cout<<"Type -4 : SUM IS = "<< sumOfNumbers(10.2f,20.3f) << endl;
return 0;
}
//函数定义...-
int sumOfNumbers(int x,int y)
{
return (x+y);
}
int sumOfNumbers(int x,int y,int z)
{
return (x+y+z);
}
int sumOfNumbers(int x,float y)
{
return (x+(int)y);
}
float sumOfNumbers(float x,float y)
{
return (x+y);
}Type -1 : SUM IS = 30 Type -2 : SUM IS = 60 Type -3 : SUM IS = 30 Type -4 : SUM IS = 30.5