C++函数的默认参数详情
在C++中,可以给函数的参数默认值。当不指定这些参数的值时,函数就使用默认值。
语法
return_type function_name(data_type parameter_name = default_value);
在上面的语法中,parameter_name
是要被设置默认值的参数名,default_value
是要被赋予该参数的默认值。
在实际编程中,如果你给了一个默认参数,那么这个参数就不需要在调用函数时指定。如果你指定了这个参数的值,则函数将会使用你提供的值而不是默认值。如果在函数的调用中,如果想要指定某个参数的值,而把它后面全部参数都设为默认值,那么可以使用一个无效参数值(如0、NULL等)来占位。
示例
示例1
下面的函数求两个整数的和,其中第二个参数的默认值为0:
int add(int a, int b = 0) {
return a + b;
}
int main() {
int x = 5;
int y = 3;
int z = add(x);
std::cout << "z = " << z << std::endl; //输出 5
z = add(x, y);
std::cout << "z = " << z << std::endl; //输出 8
return 0;
}
在上述示例中,我们在定义函数add
时为参数b
设置了默认值为0。在函数调用中,如果不为b
指定参数,则使用默认值0。在第一次调用时,只传递了一个参数,所以b
取默认值0,函数返回5。在第二次调用时,传递了两个参数,因此使用传递的参数,函数返回8。
示例2
我们再来看一个示例,下面的函数将两个字符串连接起来,其中第二个参数的默认值为"World":
std::string combine(const std::string& str1, const std::string& str2 = "World") {
return str1 + ", " + str2 + "!";
}
int main() {
std::string greeting = combine("Hello");
std::cout << greeting << std::endl; //输出 Hello, World!
greeting = combine("Hello", "C++");
std::cout << greeting << std::endl; //输出 Hello, C++!
return 0;
}
在上述示例中,我们在定义函数combine
时为参数str2
设置了默认值"World"。在函数调用中,如果不为str2
指定参数,则使用默认值"World"。第一次调用中,只传递了一个参数,函数返回"Hello, World!"。第二次调用中,传递了两个参数,因此使用传递的第二个参数"C++",函数返回"Hello, C++!"。
注意事项
- 默认参数必须放在函数参数列表的最后。
- 如果函数声明中已经指定了默认参数,那么在定义函数实现时可以不再指定默认参数值。
- 可以为多个参数设置默认值,但是一旦开始为某个参数设置默认值,则后面的所有参数都必须设置默认值。
- 当使用默认参数时,要注意在调用函数时指定的参数和函数声明中的参数顺序要保持一致。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C++函数的默认参数详情 - Python技术站