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