ホームページ >バックエンド開発 >C++ >C の静的 Const Integer メンバーによって「未定義の参照」リンカー エラーが発生するのはなぜですか?

C の静的 Const Integer メンバーによって「未定義の参照」リンカー エラーが発生するのはなぜですか?

DDD
DDDオリジナル
2024-12-10 20:28:11627ブラウズ

Why Does a Static Const Integer Member in C   Cause an

静的 Const 整数メンバーへの未定義の参照

C ではクラス定義内で静的 const メンバー整数の定義が許可されているという誤解にもかかわらず、指定されたコードはトリガーを引き起こしますtest::N への未定義の参照によるリンカ エラー。このエラーは、コードが初期化されていない静的メンバー変数を使用しようとすると発生します。

クラス宣言で静的な const 整数を初期化することは可能ですが、これは定義を構成しません。この問題を解決するには、初期化子を使用せずに、名前空間スコープ内でメンバーを個別に定義する必要があります。

この場合、std::min は定数参照によってパラメーターを取得するため、test::N の定義が必要になります。が必要です。定義がないと、リンカーはメンバー変数への参照を解決できません。

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

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。