qt 创建单例 .h .cpp形式 继承Qobject 并调用
时间: 2024-03-26 20:40:39 浏览: 118
好的,下面是一个继承自QObject的单例模式实现示例,并演示如何调用该单例:
Singleton.h文件:
```cpp
#ifndef SINGLETON_H
#define SINGLETON_H
#include <QObject>
class Singleton : public QObject {
Q_OBJECT
public:
static Singleton& getInstance();
void test();
private:
Singleton(QObject* parent = nullptr); // 构造函数私有化
Singleton(const Singleton&); // 拷贝构造函数私有化
Singleton& operator=(const Singleton&); // 赋值运算符私有化
~Singleton(); // 析构函数私有化
};
#endif // SINGLETON_H
```
Singleton.cpp文件:
```cpp
#include "Singleton.h"
Singleton& Singleton::getInstance() {
static Singleton instance;
return instance;
}
Singleton::Singleton(QObject* parent) : QObject(parent) {
// TODO: 对象初始化
}
Singleton::~Singleton() {
// TODO: 对象销毁
}
void Singleton::test() {
// TODO: 测试用例
}
```
在上述示例中,我们新增了一个test()方法来演示如何调用单例类的成员函数。
下面是调用单例类的示例代码:
```cpp
#include "Singleton.h"
int main(int argc, char* argv[]) {
QCoreApplication app(argc, argv);
Singleton& instance = Singleton::getInstance();
instance.test();
return app.exec();
}
```
在上述示例中,我们通过Singleton::getInstance()静态方法获取Singleton实例,并调用其test()方法来演示如何调用单例类的成员函数。需要注意的是,由于我们已经继承自QObject并启用了元对象系统,因此可以在test()方法中使用Qt的信号槽机制。
阅读全文