首頁 > 後端開發 > C++ > 為什麼我在 C 中遇到靜態變數連結錯誤?

為什麼我在 C 中遇到靜態變數連結錯誤?

Patricia Arquette
發布: 2024-12-31 08:02:09
原創
407 人瀏覽過

Why Am I Getting a Static Variable Link Error in C  ?

靜態變數連結錯誤[重複]

在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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板