クラス定義の外で静的データ メンバーを初期化する方法と理由
静的データ メンバーの初期化と定義
提供されたコード内の変数 "i" などの静的データ メンバーは、初期化中に特別な処理を必要とします。値を割り当てるイニシャライザと、変数の存在を宣言する定義の違いを理解することが重要です。
イニシャライザと定義
コード例では、静的データメンバー "i" はクラス定義の外で初期化されます。定義では変数のメモリ内のアドレスを提供する必要があり、クラス定義自体では決定できないため、これが必須です。
一方、イニシャライザは、変数を指定せずに単に変数に値を代入します。住所。これにより、初期値を 1 か所で設定する簡潔な方法が可能になり、コンストラクター内で初期値を繰り返す必要がなくなります。
非静的データ メンバー
「normalValue」などの非静的データ メンバーこの例では、クラスのインスタンス内に存在します。それらのアドレスは、それらが属するインスタンスによって異なります。したがって、非静的データ メンバー定義は、インスタンスの作成時に作成されます。
静的データ メンバーの定義
対照的に、静的データ メンバーは固定アドレスを持ち、どのインスタンスからも独立して存在します。一意のアドレスを確実に取得するために、リンカーは静的データ メンバーごとに 1 つの定義を必要とします。通常、クラス定義は複数のオブジェクト ファイルに含まれるため、クラス内で静的データ メンバーを定義すると、この要件に違反します。
クラス外の定義
この問題を解決するには、静的データ メンバーの定義を次のようにする必要があります。クラス宣言の外に置かれます。これにより、それらが単一のオブジェクト ファイルに表示されるようになり、リンカが適切なアドレスを割り当てることができるようになります。
外部変数との類似
クラスの外で静的データ メンバーを定義する概念は、宣言することに似ています。外部変数。 extern 宣言は、変数がプログラム内の別の場所で定義されていることを示します。同様に、クラス定義内の静的データ メンバー宣言は、実際の定義が別途提供される extern 宣言として見ることができます。
以上がクラス定義の外で静的データ メンバーを初期化する方法と理由の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











C言語関数によって返される値の種類は何ですか?返品値を決定するものは何ですか?

STL(ソート、検索、変換など)のアルゴリズムを効率的に使用するにはどうすればよいですか?
