单例模式特点:
1、单例类只能有一个实例。
2、单例类必须自己创建自己的唯一实例。
3、单例类必须给所有其他对象提供这一实例
饿汉模式
class SIGNAL1
{
private:
SIGNAL1(){}
//在类的加载阶段就创建好一个静态对象供外部使用,除非重启系统,那么这个静态对象就不会改变,所以饿汉模式是安全的
static SIGNAL1 signal = new SIGNAL;
public:
static SIGNAL1 getsignal
{
return signal;
}
};
懒汉模式
class SIGNAL2
{
private:
SIGNAL2(){}
static SIGNAL2 signal = null;
public:
//懒汉模式是用到的时候才给内存,但在多线程环境下会产生多个signal对象
static SIGNAL2 getsignal
{
if(NULL == signal)
{
signal = new SIGNAL2;
}
return signal;
}
};