C++におけるstaticキーワードの役割
C++において、staticキーワードは以下のような場面で使用することができます:
- 関数内でstatic修飾子を使用して局所変数を宣言すると、その変数の寿命がプログラム全体の実行期間にまで延び、関数が実行されていない間も存在し続けます。これは、関数を呼び出すたびに変数の値が保持され、再初期化されないことを意味します。
- 静的修飾がグローバル変数に使用されている場合:静的修飾がグローバル変数に使用されると、その変数のスコープは、その変数を宣言したファイル内に限定され、他のファイルからその変数にアクセスすることはできません。これにより、異なるファイル間での名前の衝突を回避できます。
- クラス内で静的修飾子を使用してメンバー変数を定義すると、その変数は静的メンバー変数と呼ばれ、クラス全体に属し、インスタンスではなくクラスに属します。静的メンバー変数はクラスのすべてのインスタンスで共有され、クラス名を使って直接アクセスできます。
- クラス内でstatic修飾子を使ってメンバー関数を宣言すると、その関数は静的メンバー関数と呼ばれます。この関数はクラスのインスタンスではなく、クラス自体に属しています。静的メンバー関数は、クラス名を使って直接呼び出すことができ、クラスのインスタンスを作成する必要はありません。
基本的には、staticキーワードは変数や関数に修飾子として使用され、それらのスコープ、寿命、またはアクセス方法を変更する役割を果たします。