举一个qt类的单例模式
时间: 2023-09-27 22:05:52 浏览: 101
qt examples
3星 · 编辑精心推荐
在Qt中实现单例模式可以使用Q_GLOBAL_STATIC宏。
下面是一个示例:
```
class MySingleton {
public:
static MySingleton *instance() {
static Q_GLOBAL_STATIC(MySingleton, singleton);
return singleton;
}
void doSomething() {
qDebug() << "I am a singleton!";
}
private:
MySingleton() = default;
~MySingleton() = default;
Q_DISABLE_COPY(MySingleton)
};
// 使用方法
MySingleton::instance()->doSomething();
```
在这个示例中,MySingleton类的构造函数和析构函数都设置为私有,以确保该类只能通过instance函数来获取单例对象。instance函数内部使用Q_GLOBAL_STATIC宏创建了一个静态指针singleton,该指针指向MySingleton类的单例对象。因为Q_GLOBAL_STATIC宏是线程安全的,所以可以保证单例对象的创建和销毁是线程安全的。在doSomething函数中,我们可以使用单例对象来执行任何操作。
阅读全文