C++ 函数匹配和作用域声明

#include<iostream>
using namespace std;
//函数重载:指的是有两个或以上的函数名字相同,但是函数参数的类型或个数不同;

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()
{
    //当在同一个作用域内出现两次及以上的声明,那么就会发生歧义
    int MAX(int,int);
    char MAX(char,char);
    cout<<MAX(10,20)<<endl;
    cout<<MAX('a','b')<<endl;
    cout<<MAX(787.798,6798.6798)<<endl;
}
原文地址:https://www.cnblogs.com/Sico2Sico/p/5384268.html