// The following code Source: Design Solutions for fine pattern -GoF 23 design patterns to achieve desorption and C ++ source code
//Singleton.h
#pragma once #include<iostream> class Singleton { public: static Singleton* Instance(); protected: Singleton(); private: static Singleton* _instance; };
//Singleton.cpp
#include"Singleton.h" #include<iostream> Singleton* Singleton::_instance = 0; Singleton::Singleton(){ std::cout << "Create A Singleton Instance." << std::endl; } Singleton* Singleton::Instance() { if (_instance == 0) _instance = new Singleton(); return _instance; }
//main.cpp
#include"Singleton.h" #include<iostream> int main(int args, char* argv) { Singleton* I = Singleton::Instance(); return 0; }