靜態變數連結錯誤[重複]
在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中文網其他相關文章!