MW211 EXIT

devlog
C++/静的メンバ変数の使い方
2012年07月10日
例えば、設定ファイルに決まった設定値があって、
一度読んでしまえば後はずっと同じで、それをクラスで共通的に使う場合。

こいつをクラス生成時のコンストラクタの引数に代入して使ったりする。

でも、毎回毎回クラスを生成するたんびにコンストラクタに代入するのもちょっと。

そんな時には静的なメンバ変数を使ってしまおう…って、それでいいのか?

でも、使う使わないは別として、使い方は知っておきたい。

以下の通りのようだ。

(1) クラスのメンバ変数を静的なパブリック属性として定義する。
┌──────────────────────────────────────┐
│class クラス                                                                │
│{                                                                           │
│public:                                                                     │
│    int32_t  メンバ変数;                                                    │
│}                                                                           │
└──────────────────────────────────────┘

(2) このクラスを使う側のクラスのグローバル領域で、同じ型で宣言する。
┌──────────────────────────────────────┐
│int32_t  クラス::メンバ変数;                                                │
└──────────────────────────────────────┘

(3) クラスを生成する前に値を代入する。
┌──────────────────────────────────────┐
│クラス::メンバ変数 = 値が決定した変数;                                      │
│while () {                                                                  │
│    ポインタ = new クラス();                                                │
│    delete ポインタ;                                                        │
│}                                                                           │
└──────────────────────────────────────┘
分類:C/C++