c++中的单例模式怎么使用
时间: 2024-11-21 13:19:00 浏览: 14
在C++中,单例模式是一种常用的软件设计模式,它保证一个类只有一个实例,并提供全局访问点。这个模式通常用于创建那些需要频繁访问,且只需要一个实例的对象,例如数据库连接、线程池或者日志系统。
以下是使用C++实现单例模式的一种常见方法:
```cpp
// 使用静态成员函数和互斥锁
class Singleton {
private:
static Singleton& getInstance() {
static Singleton instance;
std::call_once(initializationFlag, &Singleton::initialize);
return instance;
}
// 防止构造函数外部直接调用
Singleton() = default;
// 初始化过程只执行一次
void initialize() {}
public:
// 返回唯一实例并防止拷贝构造和赋值操作
Singleton(const Singleton&) = delete;
Singleton& operator=(const Singleton&) = delete;
// 提供全局访问点
static Singleton* getInstancePtr() {
return &getInstance();
}
// 其他公共方法...
};
```
在这个例子中,`getInstance()` 函数通过 `std::call_once` 确保初始化只执行一次,然后返回已经存在的实例。同时,通过设置复制构造函数和赋值操作为私有,避免了实例被意外地复制或改变。
阅读全文