在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