在C++中,可以同时存在多个同名函数,例:
void fun(int a,int b);
void fun(int a);
void fun(char c);
这3个互为重载函数。
要求:1.函数参数的个数不同,比如第一个和第二个函数。
2.函数参数的类型不同,例如第二个和第三个函数。
函数重载大大加大了函数的灵活性,例如输出函数:
void fun(int a)
{
cout << a << endl;
}
此时,因为形参指定为整形,函数调用时实参只能为整形,但是使用函数重载后,有了多种类型的形参,系统自动匹配所调用的函数,则实参也就同时突破了一种类型的限制。
注意点:
1.作用域:函数原型之下。
2.返回值不作为重载的条件。
3.当参数缺省值与函数重载联合使用时,可能出现问题:
void fun(int a,int b = 22);
void fun(int a);
int main()
{
fun(12);
return 0;
}
因为调用对象不明确,无法调用函数,编译失败。