记性太差了,看到别人的单例我竟然啥都想不起来,没错,就是这么菜,鸡肋的我
好记性不如烂笔头
首先,记住一个单例类的组成:
1、将构造函数声明为private或者protect,防止被外部函数实例化
2、保存一个private static的类指针保存唯一的实例
3、声明一个public方法来实例化一个实例,该方法返回单例的唯一的实例
1、懒汉加锁——线程安全
.h文件
#ifndef SINGLETON_H
#define SINGLETON_H
#include <pthread.h>
#include <QDebug>
#include <iostream>
using namespace std ;
class Singleton
{
private:
Singleton(){
qDebug()<<"构造";
pthread_mutex_init(&mutex, NULL) ;
};
static Singleton* p ;
public:
static pthread_mutex_t mutex ;
static Singleton* GetInstance() ;
void fun() ;
};
#endif // SINGLETON_H
.cpp文件
#include