C++编译器只根据函数参数表,也就是参数类型和个数进行重载版本的调用匹配,函数返回值不顶用
另外,函数默认参数时会产生二义性,代码必须这样调用才是对的。
#include <iostream>
using namespace std;
int max(int a,int b)
{
return a<b?b:a;
}
int max(int a,int b,int c=0)
{
cout<<"c == "<<c<<endl;
return a<b?b:a;
}
int main()
{
max(5,3,1);
return 0;
}
否则就会有如下编译错误|: