这是单例模式。您可以通过公共静态属性和私有构造函数来实现这一点:
class Singleton {
public:
static Singleton * const singleton;
private:
Singleton(void) {}
};
Singleton * const Singleton::singleton = new Singleton();
Run Code Online (Sandbox Code Playgroud)
编辑: Dan Watkins 的好点子;如果你真的想对它严格一点,你可以通过显式声明这些方法私有来禁止复制和赋值:
private:
Singleton(void) {}
Singleton(Singleton& other) {}
Singleton& operator=(Singleton& other) {}
Run Code Online (Sandbox Code Playgroud)