c++单例
#include <stdio.h> #include <iostream> using namespace std; class A { public: void printA(){printf("hello A");} }; template<typename T> class singleton { private: singleton(); singleton(const singleton&); singleton& operator=(const singleton&); ~singleton(); public: static T* get_instance() { if(m_instance == NULL) { //CGuard(m_lock) if(m_instance == NULL) m_instance = new T; } return m_instance; } private: static T* m_instance; }; template<typename T> T* singleton<T>::m_instance = NULL; int main( int argc, const char** argv ) { singleton<A>::get_instance()->printA(); return 0; }
本博客内容均来自网络,如有雷同,是我抄袭!