SingletonPattern.cpp 584 B

123456789101112131415161718192021222324252627
  1. #include <iostream>
  2. using namespace std;
  3. class Singleton {
  4. public:
  5. static Singleton* Instance() {
  6. if (!_instance) {
  7. _instance = new Singleton();
  8. }
  9. return _instance;
  10. }
  11. private:
  12. Singleton() { cout << "Singleton..." << endl; }
  13. static Singleton* _instance;
  14. };
  15. Singleton* Singleton::_instance = nullptr;
  16. int main() {
  17. Singleton *singleton1 = Singleton::Instance();
  18. cout << singleton1 << endl;
  19. Singleton *singleton2 = Singleton::Instance();
  20. cout << singleton2 << endl;
  21. delete Singleton::Instance();
  22. return 0;
  23. }