C++单例模式2

本文介绍了如何在C++中使用Singleton设计模式,并通过std::mutex实现线程安全,确保全局唯一实例。
摘要由CSDN通过智能技术生成

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;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值