单例模式的要点
1、构造方法私有
2、一个私有静态对象
3、一个公有获得静态对象方法
给静态对象分配内存有两种方式
1、编译就已经确定分配内存
2、当第一次使用时,判断为null再去创建
class Singleton
{
public:
Singleton* GetInstance()
{
if(s_instance==NULL)
s_instance = new Singleton;
return s_instance;
}
private:
Singleton();
private:
static Singleton* s_instance;
};
单例方法非常简单,也可以将该单例类再封装下,其他类如果想使用单例,则继承可以实现
template< class T >
class BaseSingle
{
public:
static T* Instance()
{
if ( !mThis )
mThis = new T;
return mThis;
}
static T* mThis;
};
template< typename T >
T* BaseSingle< T >::mThis = 0;
继承使用如:
class A : public BaseSingle<A>
{
}
使用
A::Instance().调用方法/属性