单件的模版实现
#include "lock.h"
/*
* 单件类
使用方法:
class A : public SignleTon<A>
{
...
};
A * a= A::GetInst();
*/
template <class T>
class SingleTon
{
public:
static T * GetInst() //会抛内存分配异常
{
if(!_inst)
{
CAutoLock ao( &_lock );
if(!_inst)
_inst = new T;
}
return _inst;
}
protected:
static CLock _lock;
static T * _inst;
};
template<class T>
CLock SingleTon<T>::_lock = CLock();
template<class T>
T * SingleTon<T>::_inst = NULL;
的模版实现&spm=1001.2101.3001.5002&articleId=2709292&d=1&t=3&u=ca405cd19ece4014aedaea6d160e6a59)
1518

被折叠的 条评论
为什么被折叠?



