#include<iostream>
using namespace std;
//函数重载:指的是有两个或以上的函数名字相同,但是函数参数的类型或个数不同;
//重载的函数一定要精确匹配,即使能编译通过,但对于出现的warning还是要小心
int MAX(int a,int b)
{
cout<<__func__<<"int,int"<<endl;
return a>b?a:b;
}
char MAX(char a,char b)
{
cout<<__func__<<"char,char"<<endl;
return a>b?a:b;
}
double MAX(double a, double b)
{
cout<<__func__<<"double,double"<<endl;
return a>b?a:b;
}
int main()
{
cout<<MAX(10,20)<<endl;
cout<<MAX('a','b')<<endl;
//不要使用有歧义的参数传递来匹配函数的重载
cout<<MAX(787.678,'b')<<endl;
}