函数重载是指在同一作用域内,可以有一组具有相同函数名,不同参数列表的函数,这组函数被称为重载函数。重载函数通常用来命名一组功能相似的函数,这样做减少了函数名的数量,避免了名字空间的污染,对于程序的可读性有很大的好处。
示 例:
#include<iostream>
#include<cstring>
using namespace std;
int max(int,int);
char max(char,char);
double max(double,double);
char* max(char*,char*);
int main(){
cout<<max(3,5)<<endl;
cout<<max('c','T')<<endl;
cout<<max(3.1,5.5)<<endl;
cout<<max("what","where")<<endl;
system("pause");
return 0;
}
int max(int x,int y)
{
if(x>y) return x;
else return y;
}
char max(char f,char s)
{
if(f>s) return f;
else return s;
}
double max(double u,double v)
{
if(u>v) return u;
else return v;
}
char* max(char* f,char* s)
{
if(strcmp(f,s)>0) return f;
else return s;
}
运行结果:
分别给max函数的4个重载函数一组实参,程序运行时,根据所传递的实参的不同,调用相应的函数,得到了期望的结果。
重载函数需要注意的地方:
#重载函数至少要在参数的个数上有所不同
#重载函数至少要在参数的参数类型上有所不同
#在类中,在成员函数后面加上关键字const也可以作为重载函数
#如果函数只是函数类型(返回类型)不同,而其他完全相同(参数个数及类型),则不能作为重载函数来使用。