Qt 专门的宏Q_GLOBAL_STATIC,用来实现线程安全的单例模式


Qt本身就提供了专门的宏 Q_GLOBAL_STATIC。通过这个宏不但定义简单,还可以获得线程安全性。

1、先看官方文档

doc.qt.io/qt5/qglobalstatic

doc.qt.io/qt5/threadsreentrancy

2、再看使用方法

Q_GLOBAL_STATIC(Type, VariableName)

Q_GLOBAL_STATIC_WITH_ARGS(Type, VariableName, Arguments)

3、举例说明

rule.h

1 #ifndef RULE_H 2 #define RULE_H 3 #include <QGlobalStatic> 4 #define RULE Rule::instance() 5 class Rule 6 9 virtual ~Rule() 10 public: 11 static Rule* instance(); 12 public: 13 void test(); 14 }; 15 #endif // RULE_H

rulepp

1 #include "rule.h" 2 Q_GLOBAL_STATIC(Rule, rule) 3 Rule* Rule::instance() 4 7 void Rule::test() 8

在任何地方,引用头文件 include "rule.h"

就可以Rule::instance()>test();

或者使用宏RULE>test();



上一篇:Qt Cannot retrieve debugging output报错 (无法获取调试输出.)

下一篇:ITK 基于C++和ITK获取3D医学图像的最大连通区域


Qt
Copyright © 2002-2019 k262电脑网 www.k262.cn 皖ICP备2020016292号
温馨提示:部分文章图片数据来源与网络,仅供参考!版权归原作者所有,如有侵权请联系删除!QQ:251442993 热门搜索 网站地图