c++ 单例模式
时间: 2023-07-04 13:21:04 浏览: 111
C++单例模式应用实例
5星 · 资源好评率100%
在 C++ 中,可以使用静态变量和静态方法实现单例模式。以下是一个示例代码:
```c++
class Singleton {
private:
static Singleton* instance; // 静态变量,保存唯一实例的指针
Singleton() {} // 构造函数私有化,禁止外部创建实例
public:
static Singleton* getInstance() { // 静态方法,返回唯一实例的指针
if (!instance) {
instance = new Singleton();
}
return instance;
}
};
Singleton* Singleton::instance = nullptr; // 静态变量需要在类外初始化
int main() {
Singleton* s1 = Singleton::getInstance();
Singleton* s2 = Singleton::getInstance();
std::cout << (s1 == s2) << std::endl; // 输出 1
return 0;
}
```
在 `getInstance` 方法中,如果实例指针为空,则创建一个实例并将其赋值给静态变量;否则直接返回静态变量的值。由于构造函数被私有化,外部无法创建实例,因此保证了单例模式的实现。
阅读全文