静的コンストラクターを使用せずに C でプライベート静的データ メンバーを初期化する方法

Patricia Arquette
リリース: 2024-11-10 18:06:02
オリジナル
422 人が閲覧しました

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
};
ログイン後にコピー

この手法を使用すると、静的データはプログラムの実行中に 1 回初期化され、アクセスできるようになります。プログラムの存続期間全体にわたって。このアプローチは、C の静的コンストラクターの実行可能な代替手段として機能します。

以上が静的コンストラクターを使用せずに C でプライベート静的データ メンバーを初期化する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート