有没有办法在C ++中只允许一个类的一个实例? 如果有,请告诉我。谢谢。
答案 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) {}