📅  最后修改于: 2023-12-03 14:58:15.497000             🧑  作者: Mango
在C++中,函数可以接受参数,有时在定义函数时会给参数提供默认值。但是如果在函数定义中已经给某个参数提供了默认值,那么在调用该函数时,不能再为该参数传递值,否则会导致编译器报错“错误:为参数提供默认参数”。
当在函数定义中给参数提供了默认值,并在函数调用时为该参数传递值,编译器会报错,如下所示:
void foo(int x = 10){
//...
}
int main(){
foo(20); // 错误:为参数提供默认参数
return 0;
}
如果需要在函数调用时为某个参数传递值,可以将函数定义中该参数的默认值去掉,如下所示:
void foo(int x){
//...
}
int main(){
foo(20);
return 0;
}
或者使用函数重载的方法,在定义多个同名但参数列表不同的函数来完成该需求,如下所示:
void foo(int x){
//...
}
void foo(){
foo(10); // 传递默认值
}
int main(){
foo(20);
foo();
return 0;
}