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
0
二维码
海报
CPP Learning: 函数的默认形参、函数重载
程序源码
#include <iostream>
using namespace std;
//默认形参必须在非默认形参的后面(右边)
#if 0
void print(char ch, int n = 1){
……
共有 0 条评论