ホームページ > バックエンド開発 > C++ > C のクラス宣言の外で静的データ メンバーを定義する必要があるのはなぜですか?

C のクラス宣言の外で静的データ メンバーを定義する必要があるのはなぜですか?

Barbara Streisand
リリース: 2024-12-04 21:03:15
オリジナル
740 人が閲覧しました

Why Must Static Data Members Be Defined Outside the Class Declaration in C  ?

静的データ メンバーのメモリ割り当ての影響

IBM C ナレッジ センターには、クラス メンバー リストでの静的データ メンバーの宣言が次のように記載されています。は定義ではないため、名前空間スコープのクラス宣言の外で定義する必要があります。これにより、なぜこれが必要なのか、メモリ割り当てに関して回路図にどのような影響があるのか​​という疑問が生じます。

1 つの定義ルールに従って、プログラム内の各静的オブジェクトは 1 回だけ定義する必要があります。ヘッダー ファイル内の静的オブジェクトの宣言が定義である場合、翻訳単位間で複数の定義が作成され、ルールに違反します。

これを回避するために、ヘッダー ファイル内の宣言は定義ではありません。代わりに、単一の定義をクラス定義の外部 (通常はプライマリ翻訳単位のソース ファイル内) に提供する必要があります。これにより、静的オブジェクトはプログラム全体で 1 回だけ定義され、単一定義ルールが遵守されます。

メモリ割り当ての観点から、静的データ メンバーは静的データと呼ばれるメモリの特別なセグメントに割り当てられます。セグメント。これらはプログラムの起動時に 1 回だけ初期化され、プログラムの存続期間中はその値が保持されます。これは、オブジェクトの作成時にスタックまたはヒープに割り当てられ、オブジェクトの破棄時に破棄される非静的データ メンバーとは対照的です。

以上がC のクラス宣言の外で静的データ メンバーを定義する必要があるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート