head File
//SingletonPattern.h #ifndef SINGLETON_PATTERN_H #define SINGLETON_PATTERN_H #include <Windows.h> #include <string> using namespace std; namespace SingletonPattern { // Base Class ////////////////////////////////////////////////////////////////////////// class Singleton { public: static Singleton* GetInstance() { static Singleton cSingleton; return &cSingleton; } private: Singleton(); virtual ~Singleton(); }; ////////////////////////////////////////////////////////////////////////// void SingletonPattern_Test_A(); void SingletonPattern_Test_B(); } #endif
accomplish
#include "SingletonPattern.h" #include <iostream> using namespace std; namespace SingletonPattern { ////////////////////////////////////////////////////////////////////////// Singleton::Singleton() { } Singleton::~Singleton() { } ////////////////////////////////////////////////////////////////////////// void SingletonPattern_Test_A() { Singleton* pInstance = Singleton::GetInstance(); cout << "SingletonPattern_Test_A Instance address:0x" << pInstance << endl; } void SingletonPattern_Test_B() { Singleton* pInstance = Singleton::GetInstance(); cout << "SingletonPattern_Test_B Instance address:0x" << pInstance << endl; } }
client
#include "SingletonPattern.h" #include <iostream> using namespace std; using namespace SingletonPattern; void main() { SingletonPattern_Test_A(); SingletonPattern_Test_B(); }
operation result