首頁 > 後端開發 > C++ > 為什麼我在 C 中收到「未定義的靜態變數引用」錯誤?

為什麼我在 C 中收到「未定義的靜態變數引用」錯誤?

Patricia Arquette
發布: 2024-12-15 11:46:10
原創
954 人瀏覽過

Why Am I Getting an

解決C 中的「對靜態變數的未定義引用」錯誤

使用靜態類別變數時,您可能會遇到C 中的「對靜態變數的未定義引用”錯誤。本文將探討此問題並提供解決方案。

以以下程式碼為例:

class Helloworld {
  public:
    static int x;
    void foo();
};

void Helloworld::foo() {
  Helloworld::x = 10;
}
登入後複製

編譯此程式碼時,您可能會收到錯誤「undefined reference to 'Helloworld」 ::x'」。這是因為您沒有為靜態變數x 提供定義。的定義即可解決錯誤:

您可以使用任何適當的值初始化x。將如下所示:
int Helloworld::x; // Define the static variable
登入後複製

現在,編譯器將能夠正確定位x 的定義並解決錯誤。函數不是靜態的,它仍然可以存取 Helloworld 類別的靜態變數 x。

以上是為什麼我在 C 中收到「未定義的靜態變數引用」錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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