如何在C ++中创建只有一个实例的类

时间:2014-12-07 00:26:26

标签: c++ class

有没有办法在C ++中只允许一个类的一个实例? 如果有,请告诉我。谢谢。

1 个答案:

答案 0 :(得分:3)

这是singleton pattern。您可以通过公共静态属性和私有构造函数来实现此目的:

class Singleton {
    public:
        static Singleton * const singleton;
    private:
        Singleton(void) {}
};
Singleton * const Singleton::singleton = new Singleton();

编辑: Dan Watkins的好点;如果你真的想要对它很苛刻,你可以通过明确地声明这些方法是私有的来禁止复制和分配:

    private:
        Singleton(void) {}
        Singleton(Singleton& other) {}
        Singleton& operator=(Singleton& other) {}