0

のように、特定の変数をクラス全体で使用するよりも、メソッド内に保持する方が良いと言われました。しかし、なぜこれが事実なのですか?

4

1 に答える 1

0

アイデアは次のとおりです。

1回の使用で1変数。しないでください

int i=0;
//some code using i

//some other code not using i

//a new code using i because you just need an int and i is already there

新しい変数を宣言したり、2 つのネストされたスコープを宣言したりすることもできます。なぜ ?2 回目の使用のために変数を再初期化するのを忘れると、何か問題が発生するためです。

また、使用ごとに 1 つの変数を持つことは、多くの場合、i、counter、value、tmp などの名前ではなく、変数に適切な名前を付ける方が適切です。コードを読みやすくする特定の名前を優先します。

また、変数を 1 つの小さなスコープでのみ使用すると、それを使用する間、スタック上で動的に少しのメモリが消費されます。多くの変数を含む非常に巨大なスコープに配置すると、デバッガーにローカル変数が多くなり (デバッグが難しくなります)、実際に必要なものよりも長い寿命のためにメモリを使用します (これはそれほど悪くはありません小さな変数ですが、STL コンテナーなどの大きな変数には悪い場合があります.そして、一般に、このコーディング スタイルをあらゆる種類の変数に適用するために使用すると、たとえ小さな変数であっても、大きな変数に対してもそれを行うのに役立ちます)

そして、あなたのメッセージでは、関数内のローカル変数だけでなく、オブジェクトメンバーとして変数を持つことについて話しています。繰り返しますが、オブジェクトが大きくなります。コードの一部で、この変数が使用されていないか、初期化されていない可能性があります。

これはすべてスタイルですが、ミスを減らすのに役立ちます。使用ごとに 1 つの変数のみを使用し、変数を作成するとすぐにそれを使用して初期化する必要があります。

ローカル変数のスコープに関する Google cpp ガイドライン

于 2012-11-14T19:46:16.640 に答える