首頁 > 後端開發 > C++ > 主體

如何在沒有靜態建構​​子的情況下在 C 中初始化私有靜態資料成員?

Patricia Arquette
發布: 2024-11-10 18:06:02
原創
420 人瀏覽過

How to Initialize Private Static Data Members in C   Without Static Constructors?

私人靜態資料成員的初始化:靜態建構子的替代方法

在類別中經常會遇到對私有靜態資料成員的需求,類似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中文網其他相關文章!

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