如何为作为参考的bool分配默认值?
我有这样的功能:
void someFunction(bool a = true, bool& b)
{
if(a)
b = false;
else
std::cout << "nothings changed" << std::endl;
}
我应该如何在此上下文中为b指定默认值?
void someFunction(bool a = true, bool& b = false)
不起作用。那怎么办呢?
答案 0 :(得分:5)
您无法使用值初始化非const引用。你需要一个变量:
bool dummy_variable;
void someFunction(bool a = true, bool& b = dummy_variable)
{
// ...
}
但是简单地返回bool可能会更有意义:
bool someFunction(bool a = true)
{
return !a;
}
然后,客户仍然可以自己决定是否要忽略结果。
答案 1 :(得分:0)
您不能将临时对象绑定到非const引用。您需要使用非临时对象:
bool bDefaultVal = false;
void someFunction(bool a = true, bool& b = bDefaultVal)
{
...
}