1. ホーム
  2. c++

静的コンストラクタとは何ですか?

2023-11-22 10:47:27

質問

この質問は、面接で聞かれたものです。

静的コンストラクタとは何ですか?

C++に存在しますか?ある場合、例を挙げて説明してください。

どのように解決するのですか?

C++には静的コンストラクタはありませんが、ネストしたクラスの静的インスタンスを使用してエミュレートすることができます。

class has_static_constructor {
    friend class constructor;

    struct constructor {
        constructor() { /* do some constructing here … */ }
    };

    static constructor cons;
};

// C++ needs to define static members externally.
has_static_constructor::constructor has_static_constructor::cons;