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; }
否则就会有如下编译错误|: