qt 单例 写成.h和.cpp格式
时间: 2024-03-21 16:38:12 浏览: 67
.h .cpp 转成utf-8格式,QT写的,做linux下的应用开发很有用
5星 · 资源好评率100%
好的,下面是一个简单的单例类的实现,分别以 .h 和 .cpp 格式展示:
Singleton.h
```cpp
#ifndef SINGLETON_H
#define SINGLETON_H
class Singleton
{
public:
static Singleton* getInstance();
private:
Singleton();
static Singleton* instance;
};
#endif // SINGLETON_H
```
Singleton.cpp
```cpp
#include "Singleton.h"
Singleton* Singleton::instance = nullptr;
Singleton::Singleton()
{
// constructor
}
Singleton* Singleton::getInstance()
{
if (instance == nullptr) {
instance = new Singleton();
}
return instance;
}
```
在上面的代码中,Singleton 类只有一个私有的构造函数和一个公有的静态函数 getInstance()。getInstance() 函数用于获取 Singleton 的唯一实例,如果实例不存在,就会创建一个新的实例并返回。这是一种常用的实现方式,被称为懒汉式单例模式。
需要注意的是,Singleton 类的实例是通过静态指针 instance 来实现的。在 getInstance() 函数中,如果 instance 为空,就会创建一个新的 Singleton 对象并赋值给 instance,这样就保证了 Singleton 类只有一个实例。同时,在 Singleton 类的头文件中使用了 ifndef 和 define 来避免重复引用。
希望这个例子能帮助你理解单例模式的实现。
阅读全文