C の静的コンストラクター : 静的データ メンバーの初期化
静的データ メンバーは、クラス内で宣言され、そのクラスのすべてのインスタンス間で共有される変数です。クラス。 Java や C# などの言語では、静的コンストラクターを使用して、インスタンスが作成される前にこれらのメンバーを初期化できます。ただし、C には指定された静的コンストラクターがありません。
C で同様の機能を実現するには、別のアプローチとして、静的データ用に別のクラスを作成します。その仕組みは次のとおりです:
class StaticStuff { // Read-only vector of characters std::vector<char> letters_; public: StaticStuff() { for (char c = 'a'; c <= 'z'; c++) { letters_.push_back(c); } } // Getter method to access letters_ const std::vector<char>& getLetters() const { return letters_; } }; class Elsewhere { static StaticStuff staticStuff_; // Initialize once };
この例では、StaticStuff は静的データ メンバー Letters_ を保持します。プログラムが開始されると、StaticStuff のコンストラクターが 1 回実行され、letters_ が正しい文字で自動的に初期化されます。その後、Elsewhere のインスタンスは、明示的に初期化する必要なく、StaticStuff の静的インスタンスを介して Letters_ にアクセスできます。
このメソッドは、醜いハッキングや不必要なチェックに頼ることなく、C で静的データ メンバーを初期化するクリーンで効率的な方法を提供します。インスタンス コンストラクター内。
以上が静的コンストラクターを使用せずに C で静的データ メンバーを初期化するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。