C 中靜態成員的類別內初始化
在 C 中,不允許在類別宣告中定義靜態成員變數。此操作會導致編譯錯誤「ISO C 禁止非常量靜態成員 `j' 的類別內初始化」。
禁止原因:
常數成員例外:
常數靜態成員允許在類別中初始化聲明,因為它們在初始化後不會被修改。這確保了程式碼效率並消除了顯式初始化的需要。
標準值的意義:
在 C 中,如果沒有明確地初始化靜態變量,它們會自動初始化為 0已初始化。但是,在 C 中,靜態變數不會自動初始化。您必須在類別聲明(對於 const 成員)或單獨的 .cpp 檔案中手動初始化它們。
解決方案:
定義一個非常量靜態C 中的成員變量,您應該在單獨的.cpp 檔案中初始化它,而不是在類別聲明中。
對於例如:
// Header file class Test { public: static int j; }; // .cpp file int Test::j = 0;
以上是為什麼無法在 C 類別中初始化非常量靜態成員?的詳細內容。更多資訊請關注PHP中文網其他相關文章!