聞かれて説明できなかったので復習。
- 関数やブロック内で宣言された変数で、そのブロックが終了しても値を保持しているもの。静的変数とも言う。
- 「static」というキーワードを用いて宣言する言語が多い。
- オブジェクト指向のプログラミング言語の場合は、生成されたオブジェクトの個数や状態をそのブロック内に格納しておく変数として使うと便利である。
- グローバル変数のように、他の関数から使用することはできない。
つまり関数内で使うstatic変数は、初期化されずに次回呼び出されたときも前回の値を保持しているわけだ。
ちなみにグローバル変数をstaticにすると、そのファイル内だけで使えるグローバル変数になる。
staticと勘違いしやすいのはconst。
- 変更できない変数(いわゆる定数)に付けるキーワード。Constantから来ている。
ロベール先生
- 静的メンバ変数は実体を別に宣言する必要がある。
- 静的メンバ変数はどれだけクラスを作っても共有される。
- 静的メンバ変数は静的変数である。
- 静的メンバ変数は実体の定義の部分で初期化する。
- 静的メンバ変数は全実体で内容を共有したいときに使う。
- 派生しても静的メンバ変数は1個しか作られない。