変更され、プログラム全体で保持される必要があるが、1つのメンバ関数でのみ使用されるクラスのデータがある場合、その変数をそれがそのクラスのメンバーになっているかルーチンになっているか?静的変数とメンバ
Q
静的変数とメンバ
11
A
答えて
15
質問は「データはプログラム全体で使用されますか?」ではなく、「このクラスの2つのオブジェクトを作成する場合は、このデータを共有しますか?はいの場合は静的にします。いいえの場合は、しないでください。
4
私はほとんどの場合、ローカル静的変数を使用してはならず、静的メンバー変数を使用するべきではないと主張します。次に、その変数がクラスインスタンス間で共有されるべきかどうかにまで縮退する。
1
staticとしてローカル変数を宣言すると、メソッドはオブジェクトの状態とは別の状態になります。このコードを保持するとき(コピーコンストラクタの実装、割り当て、シリアライゼーションなど)、それを読むときに(不明なメソッドの振る舞いなど)、多くの間違いにつながる可能性があります。
正当な理由がない限り、静的ローカルを使用しないようにしてください(私が考えることができるのは、シングルスレッドのシングルレット実装のみです)。
関連する問題
- 1. 静的メンバ変数
- 2. クラスの静的メンバ変数
- 3. 非静的メンバ変数
- 4. は、静的メンバ変数
- 5. 静的変数を返すメンバ関数
- 6. C++メンバ関数のアクセスプライベート静的変数?
- 7. Objective Cの - 静的メンバと定数
- 8. クラスメンバとヴァラの静的メンバ
- 9. クラスの静的データメンバと静的関数メンバは、関数とグローバル変数の静的変数と同じ場所に格納されていますか?
- 10. 静的クラスのメンバ
- 11. C++静的変数を使用する継承メンバ関数
- 12. C++テンプレートクラスの変更静的メンバの値
- 13. メンバ静的関数内の静的varibale C++
- 14. 静的定数クラスのメンバ宣言
- 15. 非静的C++メンバ関数へのコールバック
- 16. 静的メソッドと静的変数のjava
- 17. 関数内静的変数と静的クラス変数の比較
- 18. 静的メソッドからメンバ変数にアクセスしますか?
- 19. サブクラス化されたクラスの静的メンバ変数
- 20. C++静的クラスと非静的クラスのメンバ
- 21. 静的メンバの継承とJava
- 22. static&constメンバ、静的クラスとボトルネック
- 23. PHPますprint_rと静的メンバ
- 24. パブリック静的変数とプライベート静的変数の違い
- 25. 静的constメンバを他の静的constメンバで初期化する
- 26. 基本クラスと派生クラスで同じ名前の静的メンバ変数
- 27. ガベージコレクタと静的クラス、変数
- 28. whileループと静的変数
- 29. 静的メソッドと変数
- 30. JPA静的メタモデルクラスのメンバ変数を最終的に宣言できますか?
ありがとうございました。私はクラスメンバ関数のローカル静的変数でさえそのクラスのすべてのオブジェクトで共有されていることを忘れていました。 – Anonymous