- 官方阐明:
Qt中有个宏Q_GLOBAL_STATIC 可以用来创建一个全局静态变量,下面看下官方文档的阐明:
Q_GLOBAL_STATIC(Type, VariableName)
Creates a global and static object of type QGlobalStatic, of name VariableName and that behaves as a pointer to Type. The object created by Q_GLOBAL_STATIC initializes itself on the first use, which means that it will not increase the application or the library's load time. Additionally, the object is initialized in a thread-safe manner on all platforms.
The typical use of this macro is as follows, in a global context (that is, outside of any function bodies):
Q_GLOBAL_STATIC(MyType, staticType)
官方文档说的意思是:
创建名为VariableName的QGlobalStatic类型的全局和静态对象,其举动类似于指向Type的指针。由Q_GLOBAL_STATIC创建的对象在第一次利用时对自身进行初始化,这意味着它不会增加应用步伐或库的加载时间。此外,该对象在所有平台上都以线程安全的方式进行初始化。
- 利用方法:
官方的阐明中就已经说了利用方法 _GLOBAL_STATIC(MyType, staticType)
- 实例阐明:
singleton.h
- #ifndef SINGLETON_H
- #define SINGLETON_H
- #include <QGlobalStatic>
- #define SINGLETON Singleton::instance()
- class Singleton
- {
- public:
- Singleton() {}
- virtual ~Singleton() {}
- public:
- static Singleton* instance();
- public:
- void setValue(int value);
- int getValue();
- prive:
- int m_value;
- };
- #endif // SINGLETON_H
复制代码 singleton.cpp- #include "singleton.h"
- Q_GLOBAL_STATIC(Singleton, theSingleton)
- Rule* Singleton::instance()
- {
- return theSingleton();
- }
- void Singleton::setValue(int value)
- {
- m_value = value);
- }
- int Singleton::getValue()
- {
- return m_value;
- }
复制代码 调用方法:
如上面的单例在需要调用的地方可以用如下方法来赋值和取值:- Singleton::instance()->setValue(520);
- int value = Singleton::instance()->getValue();
复制代码 也可以直接用界说的宏来调用- SINGLETON->setValue(520);
- int value = SINGLETON->getValue();
复制代码 免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |