当我在C ++中用作函数的参数时,如何设置引用变量的默认值?
答案 0 :(得分:2)
您只能为const &
执行此操作,而不能为非常量执行此操作。 const引用可以绑定到临时,非const引用不能。
答案 1 :(得分:2)
除非您使用移动运算符或const
引用,否则无法提供对临时值的引用:
void test (int j, double && d1=0.0)
// ^^ Move
{
//my codes
}
void test (int j, const double & d1=0.0)
// ^^^^^ Extend lifetime
{
//my codes
}
您为此函数声明了一个引用(输出)参数这一事实表明该函数在没有传递输出参数的情况下没有意义,因此默认值完全关闭(应该调用什么{{1}实际上呢?)。
您可能想要的是在输入功能时重置输出参数:
test(j);