私人靜態資料成員的初始化:靜態建構子的替代方法
在類別中經常會遇到對私有靜態資料成員的需求,類似Java或C#中靜態建構函數的概念。然而,C 並沒有為靜態建構函數提供明確機制。
為了解決這個問題,C 提供了一種替代方法。不要在類別中聲明靜態資料成員,而是建立一個單獨的普通類別來保存靜態資料。在所需的類別中聲明這個普通類別的靜態實例。
例如:
class StaticStuff { std::vector<char> letters_; public: StaticStuff() { for (char c = 'a'; c <= 'z'; c++) letters_.push_back(c); } // Provide a method to access letters_ }; class Elsewhere { static StaticStuff staticStuff; // Static instance runs once };
透過使用此技術,靜態資料在程式執行期間初始化一次並可以存取整個程式的生命週期。這種方法可以作為 C 中靜態建構函數的可行替代方案。
以上是如何在沒有靜態建構子的情況下在 C 中初始化私有靜態資料成員?的詳細內容。更多資訊請關注PHP中文網其他相關文章!