静的変数のリンク エラー [重複]
C プログラミングでは、静的変数が宣言されていても定義されていない場合に、リンク エラーが発生することがあります。コード。このエラーは、リンカーがリンク段階で静的変数の定義を見つけられないことを示します。
指定されたコードでは、クラス Log にはヘッダー ファイル Log.h で宣言された静的変数 theString がありますが、それは実装ファイル Log.cpp では定義されていません。リンク エラーを解決するには、静的変数を実装ファイルで定義する必要があります。
Log.cpp 内の修正されたコードは次のようになります。
#include "Log.h" #include <ostream> string Log::theString; // Define the static variable here void Log::method(string arg) { theString = "hola"; cout << theString << endl; }
さらに、名前空間 std を使用します。ヘッダーファイルの行。これにより、名前の競合や潜在的なエラーにつながる可能性のある、std シンボルによるグローバル名前空間の汚染が防止されます。
以上がC で静的変数のリンク エラーが発生するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。