-2

私がやろうとしていることは、以下の例です。

最初に bool を定義しましょう。

bool cat = {false};

ここで偽のブールを作りましょう。

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

では cat で呼び出してみましょう。

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

私の質問は; そのブール値を設定するよりも、実際にブール値を引数に渡すことは可能ですか?

4

2 に答える 2

4

参照渡しする必要があります。つまり、次のようになります。

void setcat(bool& booltoset)
{
 booltoset = true; 
}
于 2013-08-11T18:35:47.480 に答える
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.
}

ただし、ほとんどの場合、コンパイラはそのようなものをとにかく最適化します。

于 2013-08-11T18:39:16.910 に答える