区别
- 创建时机
- 懒汉模式是指针,调用getInstance的时候才会创建对象
- 饿汉模式是静态成员,在数据段创建的(程序启动时就创建了对象)
- 线程安全
- 饿汉安全
示例
懒汉模式
class Singleton {
private:
static Singleton* instance;
// 私有构造函数,防止外部创建
Singleton() {
std::cout << "Singleton created\n";
}
// 禁用拷贝和赋值
Singleton(const Singleton&) = delete;
Singleton& operator=(const Singleton&) = delete;
public:
static Singleton* getInstance() {
if (instance == nullptr) {
instance = new Singleton();
}
return instance;
}
void showMessage() {
std::cout << "Hello from Singleton!\n";
}
~Singleton() {
std::cout << "Singleton destroyed\n";
}
};
// 静态成员初始化
Singleton* Singleton::instance = nullptr;
2025/12/26小于 1 分钟
