C++设计模式 单例模式
时间: 2023-12-07 15:39:38 浏览: 125
C++中的单例模式是一种对象创建型模式,它保证一个类只有一个实例,并提供一个全局访问点。下面是一个简单的单例模式实现示例:
```cpp
class Singleton {
private:
static Singleton* instance;
Singleton() {} // 构造函数私有化,防止外部创建实例
public:
static Singleton* getInstance() {
if (instance == nullptr) {
instance = new Singleton();
}
return instance;
}
void doSomething() {
// 单例类的具体操作
}
};
Singleton* Singleton::instance = nullptr; // 静态成员变量初始化
int main() {
Singleton* s1 = Singleton::getInstance();
Singleton* s2 = Singleton::getInstance();
if (s1 == s2) {
cout << "s1 and s2 are the same instance." << endl;
}
s1->doSomething();
return 0;
}
```
在上面的示例中,我们使用了一个静态成员变量instance来保存唯一的实例,getInstance()方法用于获取该实例。在getInstance()方法中,如果instance为空,则创建一个新的实例,否则直接返回已有的实例。由于构造函数被私有化,因此外部无法创建实例,只能通过getInstance()方法获取实例。
阅读全文