请用C++写一段懒汉式单例模式的程序
时间: 2023-11-09 09:05:44 浏览: 91
C++实现单例模式(懒汉式)源码
当涉及到懒汉式单例模式时,它是在需要时才创建实例对象。以下是一个使用C++编写的懒汉式单例模式的示例程序:
```cpp
#include <iostream>
class Singleton {
private:
static Singleton* instance; // 单例对象指针
// 私有构造函数,防止外部创建对象
Singleton() {}
public:
// 获取单例对象的静态方法
static Singleton* getInstance() {
if (instance == nullptr) {
instance = new Singleton();
}
return instance;
}
// 示例方法
void showMessage() {
std::cout << "Hello, I am the lazy singleton." << std::endl;
}
};
// 初始化静态成员变量
Singleton* Singleton::instance = nullptr;
int main() {
// 获取单例对象
Singleton* singleton = Singleton::getInstance();
// 调用示例方法
singleton->showMessage();
return 0;
}
```
在上述示例代码中,Singleton类实现了懒汉式的单例模式。getInstance()方法负责创建或返回单例对象的指针。如果实例尚未创建,则在第一次调用getInstance()时创建实例,否则直接返回已有的实例。
在main函数中,我们通过调用getInstance()方法获取单例对象的指针,然后可以使用该指针调用示例方法showMessage()。
希望这个示例对您有所帮助!如果您有任何其他问题,请随时提问。
阅读全文