プライベート静的データ メンバーの初期化: 静的コンストラクターの代替
クラス内でプライベート静的データ メンバーが必要になることがよくあります。 、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 サイトの他の関連記事を参照してください。