5

一度だけ構築できるクラスを作成することは可能ですか? その別のインスタンスを作成しようとすると、コンパイル時エラーが発生するはずです。

4

3 に答える 3

6

インスタンス化は、実行時に動的に行われます。コンパイル エラーはコンパイル時に発生します。したがって、答えはノーです。2 回目のインスタンス化でコンパイル エラーが発生することはありません。

ただし、シングルトンを使用することはできますが、それが本当に必要かどうかを慎重に検討してください。

于 2012-04-28T08:36:34.450 に答える
1

インスタンスが 1 つしかないクラスは、シングルトン クラスと呼ばれます。

それを実行するには多くの方法があります。最も単純なものを以下に示します

class MySingleton
    {
    public:
      static MySingleton& Instance()
      {
        static MySingleton singleton;
        return singleton;
      }

    // Other non-static member functions
    private:
      MySingleton() {};                                 // Private constructor
      MySingleton(const MySingleton&);                 // Prevent copy-construction
      MySingleton& operator=(const MySingleton&);      // Prevent assignment
    };
于 2012-04-28T08:36:07.420 に答える
0

なぜコンパイルエラー?Singleton デザイン パターンを実装するだけでよいと思います。ここを見て

于 2012-04-28T08:35:09.623 に答える