首頁 >後端開發 >C++ >為什麼在 C 中出現「未定義的靜態變數參考」錯誤以及如何在不使用靜態方法的情況下修復該錯誤?

為什麼在 C 中出現「未定義的靜態變數參考」錯誤以及如何在不使用靜態方法的情況下修復該錯誤?

Barbara Streisand
Barbara Streisand原創
2024-12-19 16:03:09831瀏覽

Why Do I Get an

C 中對靜態變數的未定義引用

在C 中使用靜態變數時,開發人員經常遇到錯誤「對靜態變數的未定義引用” 」。本文探討了這個問題,並提供了不使用靜態方法的解決方案。

問題:

考慮以下程式碼:

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

這程式碼觸發「未定義引用」錯誤,因為靜態變數x 在非靜態方法foo()中被引用,但它缺少

解決方案:

要解決此問題,必須在類別定義之外為靜態成員變數x 提供定義。如下方式實作:

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

// Define the static variable outside the class
int Helloworld::x = 0;

void Helloworld::foo() {
     Helloworld::x = 10;
};

透過將初始值指定為0 或不定義,x將被零初始化。

以上是為什麼在 C 中出現「未定義的靜態變數參考」錯誤以及如何在不使用靜態方法的情況下修復該錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn