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;
}
本博客内容均来自网络,如有雷同,是我抄袭!
浙公网安备 33010602011771号