通过引用设置Bool的默认值

时间:2012-02-15 11:55:57

标签: c++ default boolean

如何为作为参考的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)

不起作用。那怎么办呢?

2 个答案:

答案 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)
{
    ...
}