qt 创建单例 .h .cpp形式
时间: 2024-03-26 13:40:32 浏览: 54
好的,下面是一个简单的单例模式实现示例(以类名为Singleton为例):
Singleton.h文件:
```cpp
#ifndef SINGLETON_H
#define SINGLETON_H
class Singleton {
public:
static Singleton& getInstance();
private:
Singleton(); // 构造函数私有化
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() {
// TODO: 对象初始化
}
Singleton::~Singleton() {
// TODO: 对象销毁
}
```
在上述示例中,通过将构造函数、拷贝构造函数、赋值运算符和析构函数全部私有化,保证了该类只能创建一个对象。同时,通过getInstance()静态方法返回一个静态的Singleton实例,确保该实例是唯一的。
为了保证线程安全,我们可以使用C++11中的局部静态变量来实现单例模式,即:
Singleton& Singleton::getInstance() {
static Singleton instance;
return instance;
}
这样就可以确保在多线程环境下,Singleton实例的创建也是线程安全的。
阅读全文