singleton模式C++
时间: 2024-09-12 10:04:42 浏览: 51
Singleton模式是一种设计模式,用于确保一个类只有一个实例,并提供一个全局访问点来获取这个实例。在C++中实现Singleton模式有多种方式,常用的方法包括懒汉式、饿汉式、线程安全的懒汉式等。以下是这些方法的简单介绍:
1. 懒汉式(Lazy Initialization):在第一次被调用时才创建实例,这可以延迟对象的创建,节省资源。
2. 饿汉式(Eager Initialization):在程序启动时立即创建实例,这种方式简单但可能会造成不必要的资源占用。
3. 线程安全的懒汉式:为懒汉式添加线程同步机制,以保证在多线程环境中正确工作。
下面提供一个简单的饿汉式Singleton模式的C++实现示例:
```cpp
class Singleton {
private:
// 将构造函数设为私有,防止外部实例化
Singleton() {}
// 禁止拷贝构造函数
Singleton(const Singleton&) = delete;
// 禁止赋值操作符重载
Singleton& operator=(const Singleton&) = delete;
public:
// 提供一个全局访问点
static Singleton& getInstance() {
static Singleton instance; // 局部静态对象在首次访问时创建并初始化
return instance;
}
// ... 其他成员函数 ...
};
```
使用时,客户端代码通过调用 `Singleton::getInstance()` 来获取Singleton类的唯一实例。
阅读全文