CPP Learning: 函数的默认形参、函数重载

程序源码

#include <iostream>
using namespace std;

//默认形参必须在非默认形参的后面(右边)

#if 0
void print(char ch, int n = 1){
    for(int i = 0; i < n; i++){
        cout << ch;
    }
}

int main(void){
    print('*'); cout << endl;
    print('*',3); cout << endl;
    print('*',5); cout << endl;
    return 0;
}
#endif

#if 0
int add(int x, int y = 2, int z = 3){
    return x + y + z;
}

int main(void){
    cout << add(5); cout << endl;
    cout << add(5,7); cout << endl;
    cout << add(5,7,9); cout << endl;
    return 0;
}
#endif

#if 1
//函数重载不能根据返回值类型区分!!
int add(int x, int y = 2){
    return x + y;
}

double add(double x, double y = 2.0){
    return x + y;
}

int main(void){
    //重载解析
    cout << add(5,3); cout << endl;
    cout << add(5.3,7.8); cout << endl;
    //cout << add(5,7.8); cout << endl;
    //多个重载函数与参数列表匹配,产生歧义性
    //解决方法:强制类型转换
    cout << add((double)5,7.8);
    return 0;
}
#endif

 

运行结果

THE END
分享
二维码
海报
CPP Learning: 函数的默认形参、函数重载
程序源码 #include <iostream> using namespace std; //默认形参必须在非默认形参的后面(右边) #if 0 void print(char ch, int n = 1){ ……