HOWTO · C++

C++ クラスでの静的変数の初期化

C++ クラスでの静的変数の初期化は、静的変数に値を割り当てるプロセスです。

この短い記事では、C++ で静的変数を初期化する方法を学びます。

C++ での静的変数の初期化

C++ クラスでの静的変数の初期化は、静的変数に値を割り当てるプロセスです。

すべてのクラス オブジェクトは静的メンバーにアクセスできます。 他の初期化が存在しない場合、最初のオブジェクトの作成時にすべての静的データがゼロに初期化されます。

これをクラス定義に含めることはできませんが、静的変数を再宣言し、スコープ解決 演算子を使用してそのクラスの所属を決定することにより、クラスの外部で初期化できます。 通常、初期化は 2つの方法で行うことができます。

  • それらを定数として定義することにより、暗黙的に。
  • 静的キーワードを使用して値を割り当てることにより、明示的に。

すべての静的変数が事前に初期化されていることが確実な場合にのみ、暗黙的な初期化を使用する必要があります。 それ以外の場合は、static キーワードを使用して明示的な初期化を使用する必要があります。

コード例:

#include <iostream>
using namespace std;
class Sam {
 public:
  static int demo;
  Sam(int x = 1, int y = 2, int z = 3) {
    X = x;
    Y = y;
    Z = z;
  }

 private:
  double X;
  double Y;
  double Z;
};
int Sam::demo = 7;
int main(void) {
  Sam sam1(6, 7, 8);
  cout << "Demo: " << Sam::demo << endl;
  return 0;
}

出力:

Demo: 7

デモコードを実行

定数変数と静的変数の違い

C++ では、変数は、数値やテキストなどのさまざまなデータ型を格納できるコンピューターのメモリ内の格納場所に付けられた名前です。 これらの名前は識別子と呼ばれます。

変数に格納されたデータは、時間の経過とともに変化する可能性があります。 このタイプの変数は、dynamic または dynamic-typed と呼ばれます。

もう 1つの変数の型は、constant または constant-typed と呼ばれます。 この種の変数に格納されたデータは、時間の経過とともに変化することはありません。通常、定数は、プログラムまたは関数の開始時にオブジェクトのプロパティとパラメーターを定義するために使用されます。

定数は const キーワードで宣言され、宣言時または関数内でのみ初期化できます。 static キーワードは変数を一度だけ作成し、同じファイル内のすべての関数が変数にアクセスできます。