什么是函数重载?
当几个函数功能相同或相近,只有参数的个数或类型不同时,我们可以在编写程序时,将这几个函数取同一个函数名。
例如,三个数中取最大值
int max1(int a,int b,int c);
double max2(double a,double b,double c);
long max3(long a,long b,long c);
我们可以把它们的名字统一起来,都叫max,于是这样用
int max(int a,int b,int c)
{
...
...
}
double max(double a,double b,double c)
{
...
...
}
long max(long a,long b,long c)
{
...
...
}
重载函数除了允许参数类型不同以外,还允许参数的个数不同,用法入下
int max(int a,int b);
int max(int a,int b,int c;)
为什么嘞?
函数调用的时候会根据每次实参类型、个数或者顺序的不同(参数的类型和个数可以都不同),自动地去找到与之匹配的函数,然后调用该函数。
注意呦
像下列的用法就是不正确的
int f(int);
long f(int);
void f(int);
重载函数的参数个数、参数类型或参数顺序必须至少有一处不同,函数返回值类型可以相同也可以不同。
另外
在使用重载函数时,同名函数的功能应当相同或相近,不要用同一函数名去实现完全不相干的功能,虽然程序也能运行,但是可读性不好,易使人莫名其妙。