プロセス ロードまたは DLL ロード時の初期化:
C では、静的メンバーはプログラムの開始時に初期化されます。または、クラスを含む DLL がロードされたとき。これは、次に示すように、extern キーワードを使用して静的メンバーを宣言することで実現できます。
<code class="cpp">extern int field1; extern int field2;</code>
別のソース ファイルで、静的メンバーは次のように初期化できます。
<code class="cpp">int field1 = ...; int field2 = ...;</code>
このアプローチにより、クラスのインスタンスが作成される前に静的メンバーが確実に初期化されます。
最初のクラスのインスタンス化時の初期化:
C では、一般的なイディオムは次のとおりです。 C コンストラクターを使用して静的メンバーを初期化します。ただし、このアプローチには、非 const 静的メンバーを初期化できないことや、コンストラクターでの明示的なメンバー初期化の要件など、いくつかの制限があります。
これらの制限を克服するより高度な手法には、静的初期化関数の使用が含まれます。以下に示すように、
<code class="cpp">class MyClass { public: static void initialize() { // Initialization code for static members }</code>
この関数は、クラスのインスタンスが作成される前に静的メンバーが確実に初期化されるように、コンストラクターまたは静的メソッドから明示的に呼び出すことができます。
以上がC で Java の静的ブロック機能をシミュレートするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。