什么是单例模式:
构造函数是私有的,只有内部接口才能访问构造函数的类可以实现单例模式,
提供一个public接口来获取这个指针,这样可以实现单例模式
class CSingleton
{
private:
CSingleton()
{
}
static CSingleton *p;
public:
static CSingleton* getInstance()
{
if(p == NULL)
p = new CSingleton();
return p;
}
};
CSingleton* CSingleton::p = NULL;
class CSingleton
{
private:
CSingleton()
{
}
static CSingleton *p;
public:
static CSingleton* getInstance()
{
return p;
}
};
CSingleton* CSingleton::p = new CSingleton();
懒汉饿汉模式看看就行,很简单很容易理解
一句话总结:
利用静态变量和私有化构造函数的特性来实现单例模式。搞一个静态的自身类指针,然后把构造函数私有化,这样new的时候就只能让本类中的成员调用,然后不择手段在类内部new出这个对象,并提供一种方法供外部得到这个对象的地址。