C++ 函数的扩展③--函数重载

//函数扩展--函数重载(C语言不支持函数重载)
#include<iostream>
using namespace std;

//函数重载在本质上是相互独立的不同函数(静态链编),在c++编译器编译就已经确定各个函数
//重载函数的函数类型是不同的
//函数返回值不能作为函数重载的依据
//函数重载是由参数列表决定的

//函数参数类型不同
void Fuc(char * b){
    printf("%s
",b);
}
//函数参数个数不同
int Fuc(int a, int b){
    return a + b;
}
//函数参数顺序不同
void Fuc(int a, double b){
    ;
}
void Fuc(double a, int b){
    ;
}
//函数返回值的不同不能构成函数重载
/*
int Fuc(double a, int b){
;
}
*/
//报错 rror C2556: “int Fuc(double,int)”: 重载函数与“void Fuc(double,int)”只是在返回类型上不同

//函数重载的二义性  
/*
void Fuc(double a, int b,int c=3){
;
}
*/
//这个函数与函数void Fuc(double a, int b)存在二义性


void main(){
    //函数重载的二义性
    //Fuc(1.0, 2);
    //报错 error C2668: “Fuc”: 对重载函数的调用不明确
    Fuc("");
    Fuc(1.0, 2);
    system("pause");
}
原文地址:https://www.cnblogs.com/zhanggaofeng/p/5587930.html