qt创建单例,并且调用
时间: 2024-01-20 15:03:50 浏览: 67
Qt 应用程序单例
要创建一个单例,可以使用Qt中的Q_GLOBAL_STATIC宏定义。这个宏定义可以确保在全局范围内只有一个实例。
下面是一个示例代码:
```cpp
#include <QCoreApplication>
#include <QDebug>
#include <QGlobalStatic>
class MySingleton
{
public:
static MySingleton& instance() {
static MySingleton s_instance;
return s_instance;
}
void sayHello() {
qDebug() << "Hello from MySingleton";
}
private:
MySingleton() {
qDebug() << "MySingleton constructed";
}
~MySingleton() {
qDebug() << "MySingleton destructed";
}
Q_DISABLE_COPY(MySingleton)
};
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
MySingleton::instance().sayHello();
return a.exec();
}
```
在这个示例中,我们定义了一个MySingleton类,并且使用Q_GLOBAL_STATIC宏定义了一个全局静态变量s_mySingleton,这个变量的类型是MySingleton*。Q_GLOBAL_STATIC宏定义的第二个参数是MySingleton类的构造函数。
在main函数中,我们可以通过MySingleton::instance()来获取MySingleton的唯一实例,并调用它的sayHello()函数。
运行这个示例,可以看到输出:
```
MySingleton constructed
Hello from MySingleton
MySingleton destructed
```
这表明MySingleton只被构造和析构了一次,并且我们成功地创建了一个单例。
阅读全文