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

Barbara Streisand
リリース: 2024-11-01 01:53:02
オリジナル
878 人が閲覧しました

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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!