目录
保证一个类仅有一个实例,并提供一个访问它的全局访问点。
当这个唯一实例应该是通过子类化可扩展的,并且客户应该无需更改代码就能使用一个扩展的实例时。

定义一个Instance操作,允许客户访问它的唯一实例。Instance是一个类操作。
可能负责创建它自己的唯一实例。
- #include
- using namespace std;
-
- class Singleton {
- public:
- static Singleton* GetInstance() {
- if (instance == nullptr) {
- instance = new Singleton;
- }
- return instance;
- }
- private:
- Singleton(){}
- static Singleton* instance;
- };
-
- Singleton* Singleton::instance = nullptr;
-
- int main() {
- Singleton* s1 = Singleton::GetInstance();
- Singleton* s2 = Singleton::GetInstance();
-
- cout << "s1 address : " << s1 << endl;
- cout << "s2 address : " << s2 << endl;
-
- return 0;
- }