Singleton.h
/******头文件*******/
#include<iostream>
#include<mutex>
class Singleton
{
public:
static Singleton *getInstance(){
std::lock_guard<std::mutex> lock(mutex_);//加锁,在析构函数结束后,解锁
return instance;
}
//示例方法
void show(const QString&);
private:
Singleton();{} //将构造函数设置成私有
Singleton(const Singleton&) = delete; //设置拷贝构造函数不可用
Singleton &operator = (const Singleton&) = delete; //该类的赋值符号设置不可用
//静态互斥锁
static std::mutex mutex_; //定义后需在cpp里声明
static singleStu *instance;
}
Singleton.cpp
/******源文件*******/
#include"singletable"
singleStu* singleStu::instance;
std::mutex singleStu::mutex_;
void singleStu::show(const QString &arr)
{
std::cout << arr <<endl;
}