引言
本文章只适用于简单的单例模式。由于本人也没有深究过。下面直接上代码。
示例
单例模式,就是只能创建一个该类的对象,因为这样其构造函数是私有的,外部只能通过接口获得创建的该类唯一的对象。
#ifndef CONFIG_H
#define CONFIG_H#include <QMutex>class Config
{
private:Config();
public:static Config *getInstance();
private:static Config * m_config;//创建的指向对象的指针static QMutex m_mutex;//互斥锁};
#endif // CONFIG_H
下面是该类的定义
#include "config.h"
#include <QMutexLocker>Config *Config::m_config = nullptr;
QMutex Config::m_mutex;
Config::Config()
{}
Config *Config::getInstance()
{if (m_config == nullptr) {//双重检测static QMutexLocker mutexLocker(&m_mutex);if (m_config == nullptr) {m_config = new Config;return m_config;}}return m_config;
}
类中声明的静态变量需要在类外定义。相关staitic的使用可以参考:
https://www.cnblogs.com/stevenshen123/p/11555758.html。