概念
- 对函数名相同,参数不同的函数的调用
- 例如:
void test()
{
return;
}
void main()
{
test();
}
void test(int a)
{
cout<<a<<endl;
}
void main()
{
test(1);
}
判断标准
int test(int a)
{
cout<<a<<endl;
}
void test(int a)
{
cout<<a<<endl;
}
函数重载的调用准则
- 将所有同名函数作为候选者
- 试寻找可行的候选函数
- 精确匹配实参
- 通过默认参数能够匹配实参
- 通过默认类型转换匹配实参
- 配失败
- 最终寻找到的可行候选函数不唯一,则出现二义性,编译失败。
- 法匹配所有候选者,函数未定义,编译失败。
函数重载注意事项
- 本质上是相互独立的不同函数(静态编译)
- 函数类型不同
- 返回值不是重载的评判标准
- 由函数名和参数列表决定