ホームページ >バックエンド開発 >C++ >静的オブジェクトに対して「未解決の外部シンボル」エラー (LNK2001) が発生するのはなぜですか?

静的オブジェクトに対して「未解決の外部シンボル」エラー (LNK2001) が発生するのはなぜですか?

Barbara Streisand
Barbara Streisandオリジナル
2024-11-01 01:53:02960ブラウズ

Why Am I Getting an

静的オブジェクトの未解決の外部シンボル エラー (LNK2001) を解決しています

あるクラスの静的フィールドに値を割り当てようとしましたmain メソッドで、「未解決の外部シンボル」という説明できないエラーが発生しました。このエラーは、リンカーがリンク プロセス中に静的メンバー変数の定義を見つけられなかったことを示します。

C リファレンスによると、クラス定義内の静的データ メンバーの宣言は定義ではありません。これは、クラス自体内で静的メンバー変数を定義できないことを意味します。このエラーを解決するには、名前空間スコープ内のクラスの外側に静的メンバーを定義する必要があります。

あなたの場合、静的メンバー変数 B::a を B クラス。

<code class="cpp">A* B::a;</code>
これにより、リンカーは静的メンバー変数の定義を正常に見つけることができます。プログラム内の各エンティティの定義が 1 つだけであることを保証する One Definition Rule (ODR) に従うことで、コンパイラーは外部シンボルを解決し、コードを正常にリンクできます。

以上が静的オブジェクトに対して「未解決の外部シンボル」エラー (LNK2001) が発生するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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