3

私がする。値型の関数パラメーターとローカル変数でも。良い考えのようです。しかし、私のチームのリーダーはそれを「const spam」と呼んでいます。彼は、プリミティブ型などの宣言に反対していconstます。たとえそうであっても。それが良いことだと彼に納得させるためにどれだけ一生懸命努力すべきか考えているconst.

4

2 に答える 2

14

とても厳しい。彼は間違っている。constC++ はそもそもデフォルトで設計されているはずであり、寛大に適用しても問題はありません。constそれは良いことです(あなたのチームのリーダーとは異なります)。

例えば:

void foo()
{
    const int x = some_function();
    // ^ Now this can't be changed. Good.

    // do stuff with `x`
}

同様に:

void foo(const int x) // <-- x can't be changed. Good.
{
   // do stuff with `x`
}

void bar()
{
   foo(5);
}

あなたがする必要のないことは、参照によって組み込み型のオブジェクトを受け入れることですconst。それはちょっと無意味です。

(もちろん、あるオブジェクトの値を変更できるようにしたい場合もあります。そのようなシナリオでは、明らかに を使用しないでくださいconst。)

于 2013-04-11T13:28:14.147 に答える
3

確かに何も害はなく、後でコードを読む人に、この変数が「変更されない」という明確なシグナルを送ります。これは、コードを変更するときに知っておくことが非常に重要です。

于 2013-04-11T13:29:00.920 に答える