C ++
 Computer >> コンピューター >  >> プログラミング >> C ++

静的C++クラスメンバーはいつ初期化されますか?


静的C++クラスのメンバーは、staticキーワードを使用して定義できます。クラスのオブジェクトの数に関係なく、メモリには静的クラスメンバーのコピーが1つしかないため、クラスの静的メンバーはすべてのクラスオブジェクトで共有されます。

静的クラスメンバーは、他の方法で初期化されていない場合、クラスの最初のオブジェクトが作成されるときにゼロに初期化されます。

C++で静的クラスメンバーを示すプログラムは次のとおりです。

#include <iostream>
using namespace std;
class Example {
   public :
   static int a;
   int func() {
      cout << "The value of static member a: " << a;
   }
};
int Example::a = 20;
int main() {
   Example obj;
   obj.func();
   return 0;
}

出力

上記のプログラムの出力は次のとおりです。

The value of static member a: 20

上記のプログラムを理解しましょう。

クラス例では、静的クラスメンバーはです。関数func()は、aの値を表示します。これを示すコードスニペットは次のとおりです。

class Example {
   public :
   static int a;
   int func() {
      cout << "The value of static member a: " << a;
   }
};
int Example::a = 20;

関数main()で、クラスExampleのオブジェクトobjが作成されます。次に、aの値を表示する関数func()が呼び出されます。これを示すコードスニペットは次のとおりです。

int main() {
   Example obj;
   obj.func();
   return 0;
}

  1. Javaのクラス/静的メソッドとは何ですか?

    クラス/S タティック メソッドは、特定のオブジェクトインスタンスではなく、クラス自体で呼び出されるメソッドです。静的修飾子は、実装がすべてのクラスインスタンスで同じであることを保証します。クラス/静的メソッドはインスタンス化なしで呼び出されます 静的メソッドは、クラスの他の静的メンバーにのみアクセスできることを意味します。 Javaに組み込まれている静的/クラスメソッドには、 Math.random()、System.gc()、Math.sqrt()、Math.random()があります。 など 構文 public class className {  modifier stati

  2. Javaクラスの静的メンバーを読み取る手順は何ですか?

    静的変数は、静的ブロックの実行前であっても、クラスのロード時に作成されます。静的ブロックの目的は、静的変数に値を割り当てることです。静的変数は、それが定義されているクラスのすべてのインスタンス間で共有される値を格納し、静的ブロックは、クラスが最初にロードされるときに実行されるコードのセクションです。クラスの読み込み時に実行する必要のあるロジックが必要な場合は、クラスの読み込み時に実行されるように、そのロジックを静的ブロック内に配置する必要があります。 JVMは、以下の手順に従って、クラス内の静的メンバーを読み取ります:: 上から下への静的メンバーの識別 静的変数の割り当てと静的ブロックを上