我想创建一个带有可选参数的函数,该参数取另一个参数的值。 在函数声明中,以下内容不起作用,但这正是我想要做的:
void function(int a, int b=a) //error
我尝试将变量b的默认值设置为a的值。 最干净的方法是什么?我们可以在不改变函数签名的情况下这样做吗?
答案 0 :(得分:10)
编写一个只接受一个参数并调用原始函数的附加函数:
inline void function(int a)
{
function(a, a);
}
答案 1 :(得分:1)
默认参数必须为global variable
或global constant
,甚至function
。但它不能是local variable
,因为local var
无法确保构建。