ホームページ > バックエンド開発 > C++ > C で静的メンバーへの「未定義の参照」が発生するのはなぜですか?

C で静的メンバーへの「未定義の参照」が発生するのはなぜですか?

Mary-Kate Olsen
リリース: 2024-12-09 00:13:10
オリジナル
295 人が閲覧しました

Why Do I Get

静的メンバーへの未定義の参照について

静的データ メンバーを含むクラスを操作する場合、「未定義の参照」に関連するエラーが発生する場合があります。これは、宣言と定義に関する明確な理解が不足していることが原因である可能性があります。

宣言と定義

クラス宣言では、通常、静的データ メンバーは宣言されますが、定義はされません。 。この宣言により、メンバーの存在と型が確立されます。ただし、アドレスを必要とする方法で使用されない限り、特定の定義はまだ必要ありません。

静的データ メンバーの定義を提供するには、実装を含む別のソース ファイルに配置する必要があります。クラスのために。定義はメンバーの名前で構成され、その前に class ::scope 演算子が続き、その後にオプションの初期化子が続きます。

定数の例外

const である静的メンバーの場合整数型または列挙型の場合、クラス宣言内で初期化子を指定できます。これにより、ソース ファイル内の定義の必要性が否定されるわけではありませんが、定義に初期化子が含まれないことが保証されます。

Templates

クラスの静的データ メンバーテンプレートの定義が異なります。定義はクラス宣言とともにヘッダー ファイルに含まれます。 1 つの定義ルールのこの例外により、テンプレートのインスタンス化ごとに静的メンバーを 1 回定義できます。

static のその他の用途

静的データ メンバー以外にも、 static は、非クラス コンテキストの関数やオブジェクトにも適用できます。意味:

  • 静的関数: 関数スコープ内で宣言され、これらの関数は関数呼び出し間で値を保持します。
  • 静的オブジェクト:名前空間スコープで宣言されたこれらのオブジェクトには、内部linkage.

これらの概念を理解することで、C で静的データ メンバーを効果的に処理し、未定義の参照に関連するエラーを回避できます。

以上がC で静的メンバーへの「未定義の参照」が発生するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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