以下是几种实现单例模式并保证全局唯一性的方法:
1. 饿汉式单例模式
class Singleton {
private:
// 私有构造函数,防止外部创建对象
Singleton() {}
// 静态成员变量,存储单例对象
static Singleton instance;
public:
// 公有静态成员函数,用于获取单例对象
static Singleton& getInstance() {
return instance;
}
};
// 静态成员变量的初始化,在程序启动时创建单例对象
Singleton Singleton::instance;
解释:
- 构造函数私有化:将
Singleton类的构造函数声明为private,确保外部无法直接创建该类的对象。 - 静态成员变量:使用
static Singleton instance存储单例对象。 - 静态成员函数:通过
static Singleton& getInstance()提供获取单例对象的接口。 - 全局初始化:在程序启动时,
Singleton::instance就会被创建,因为它是静态成员,且在类外进行了定义和初始化。这保证了在程序运行的任何时刻,getInstance()都能返回同一个对象。
2. 懒汉式单例模式(线程不安全)
class Singleton {
pri


665

被折叠的 条评论
为什么被折叠?



