C++ 函数重载和匹配

#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;
}
原文地址:https://www.cnblogs.com/Sico2Sico/p/5384270.html