通过布尔作为一个参数。 C ++

时间:2013-08-11 18:33:21

标签: c++ boolean boolean-logic

我想要做的是下面的一个例子。

让我们先定义一个bool。

bool cat = {false};

让我们在这里做一个假bool。

bool setcat(bool booltoset)
{
 booltoset = true; 
 return booltoset;
}

现在可以用cat调用它。

printf("cat is %s", cat?"true":"false"); //set cat as false.

我的问题是;是否可以通过参数实际传递bool而不是设置bool?

2 个答案:

答案 0 :(得分:4)

您需要通过引用传递,即:

void setcat(bool& booltoset)
{
 booltoset = true; 
}

答案 1 :(得分:0)

任何函数参数都只是一个变量,其范围与函数体相同。如果它是普通的自动变量,那么更改它对调用者没有影响。这有时很有用:您实际上可以使用参数,例如:

template<typename F>
void for_each(noexcept_it i, const noexcept_it end, const F &f) noexcept(noexcept(f))
{
   for(; i!=end; ++i) f(i);   // use i as iteration variable.
}

尽管编译器在大多数情况下仍会优化这些事情。