用C++写一个单例模式
时间: 2023-12-27 08:45:05 浏览: 77
单例模式是一种常见的设计模式,它保证一个类只有一个实例,并提供一个全局的访问点。下面是一个用 C++ 实现单例模式的示例代码:
```cpp
class Singleton {
public:
// 获取单例对象的全局访问点
static Singleton& getInstance() {
static Singleton instance;
return instance;
}
// 禁止拷贝构造和赋值操作
Singleton(const Singleton&) = delete;
Singleton& operator=(const Singleton&) = delete;
// 其他公共方法
void doSomething() {
// ...
}
private:
// 私有构造函数,禁止直接创建对象
Singleton() {
// ...
}
// 私有析构函数,确保对象只能在程序结束时被销毁
~Singleton() {
// ...
}
};
```
在这个示例中,我们定义了一个名为 Singleton 的类,其中包含一个静态的 `getInstance()` 方法,用于获取全局的单例对象。这个方法使用了 C++11 中的局部静态变量,确保只有一个实例被创建。
此外,为了防止拷贝构造和赋值操作,我们可以将它们标记为 `delete`,以禁用它们。这样可以确保单例对象始终只有一个,并防止出现拷贝或赋值操作时创建多个实例的情况。
阅读全文