静的メンバーへの未定義の参照について
静的データ メンバーを含むクラスを操作する場合、「未定義の参照」に関連するエラーが発生する場合があります。これは、宣言と定義に関する明確な理解が不足していることが原因である可能性があります。
宣言と定義
クラス宣言では、通常、静的データ メンバーは宣言されますが、定義はされません。 。この宣言により、メンバーの存在と型が確立されます。ただし、アドレスを必要とする方法で使用されない限り、特定の定義はまだ必要ありません。
静的データ メンバーの定義を提供するには、実装を含む別のソース ファイルに配置する必要があります。クラスのために。定義はメンバーの名前で構成され、その前に class ::scope 演算子が続き、その後にオプションの初期化子が続きます。
定数の例外
const である静的メンバーの場合整数型または列挙型の場合、クラス宣言内で初期化子を指定できます。これにより、ソース ファイル内の定義の必要性が否定されるわけではありませんが、定義に初期化子が含まれないことが保証されます。
Templates
クラスの静的データ メンバーテンプレートの定義が異なります。定義はクラス宣言とともにヘッダー ファイルに含まれます。 1 つの定義ルールのこの例外により、テンプレートのインスタンス化ごとに静的メンバーを 1 回定義できます。
static のその他の用途
静的データ メンバー以外にも、 static は、非クラス コンテキストの関数やオブジェクトにも適用できます。意味:
これらの概念を理解することで、C で静的データ メンバーを効果的に処理し、未定義の参照に関連するエラーを回避できます。
以上がC で静的メンバーへの「未定義の参照」が発生するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。