C++ 允许在声明函数时给参数赋默认值。当函数被调用时如果不传入该参数,则参数自动使用默认值。
当只给一部分参数设置默认值时,声明时应当将不含默认值的参数写在前面,含默认值的参数写在后面。
示例1:
#include <iostream>
using namespace std;
// radius被赋了默认值1
void PrintArea(double radius = 1){
return 3.14*radius*radius;
}
int main(){
PrintArea(); //将使用默认值1,输出3.14
PrintArea(2); //radius = 2
return 0;
}
示例2:部分设置默认值
void f1(int x,int y=1,int z=1); //合法
//void f2(int x,int y=1,int z); //不合法
int main(){
f1(1); //给x赋初值,y,z使用默认值
f1(1,2); //给x赋初值,给y赋初值(并覆盖了默认值),仅传入两个参数,第三个参数z使用默认值
return 0;
}
// 注意,前面声明时已经给出了默认值,定义时就不要再写默认值了,否则编译会报错
void f1(int x,int y,int z){
return x+y+z;
}