zoukankan      html  css  js  c++  java
  • Qt 单例模式

     一、单例模式保证一个类仅有一个实例,并提供一个访问它的的全局访问点。

      ① 定义私有的静态对象、对象指针或引用

      ② 将该类构造函数设为private,防止外部用new来实例化

      ③ 外部仅能通过公有静态成员函数获得唯一对象

      单例的实现方式分为懒汉式 和 饿汉式。

      如下是饿汉式的实现方式:

    #ifndef GLOBAL_H
    #define GLOBAL_H
    
    #include <QObject>
    #include <QMutex>
    
    class Global : public QObject
    {
        Q_OBJECT
    public:
        ~Global();
        static Global* GetInstance();
    
    private:
        Global();
    
        static Global *m_instance;
        static QMutex  m_mutex;
    };
    
    #endif // GLOBAL_H
    #include "Global.h"
    
    Global* Global::m_instance = nullptr;
    QMutex  Global::m_mutex;
    
    Global::Global()
    {
    
    }
    
    Global::~Global()
    {
    
    }
    
    Global *Global::GetInstance()
    {
        if (m_instance == nullptr)
        {
            QMutexLocker locker(&m_mutex);
            if (m_instance == nullptr)
            {
                m_instance = new Global();
            }
        }
        return m_instance;
    }
  • 相关阅读:
    html5新增元素和废除元素
    html5本地存储
    第四章表单与文件笔记新增属性
    第五章canvas
    lable中for的作用
    第四章表单与文件学习内容
    第三章html5的结构
    html5的全局属性
    正则表达式—升华
    微前端
  • 原文地址:https://www.cnblogs.com/jiangson/p/11309957.html
Copyright © 2011-2022 走看看