c++单例模式懒汉和饿汉
时间: 2024-03-21 19:34:37 浏览: 20
懒汉式和饿汉式是两种常见的C++单例模式实现方式。
1. 饿汉式单例模式:
饿汉式单例模式在程序加载时就创建了单例对象,无论是否使用该对象,都会占用内存空间。以下是一个示例代码:
```cpp
class Singleton {
private:
static Singleton* instance;
Singleton() {} // 私有构造函数,防止外部实例化对象
public:
static Singleton* getInstance() {
return instance;
}
};
Singleton* Singleton::instance = new Singleton(); // 在程序加载时创建单例对象
int main() {
Singleton* obj = Singleton::getInstance();
return 0;
}
```
2. 懒汉式单例模式:
懒汉式单例模式在第一次使用时才创建单例对象,避免了在程序加载时就占用内存空间。以下是一个示例代码:
```cpp
class Singleton {
private:
static Singleton* instance;
Singleton() {} // 私有构造函数,防止外部实例化对象
public:
static Singleton* getInstance() {
if (instance == nullptr) {
instance = new Singleton(); // 第一次使用时创建单例对象
}
return instance;
}
};
Singleton* Singleton::instance = nullptr; // 初始化为nullptr
int main() {
Singleton* obj = Singleton::getInstance();
return 0;
}
```