用C++写一个单例模式
时间: 2023-07-18 12:29:58 浏览: 86
单例模式是一种创建型模式,用于确保一个类只有一个实例,并提供一个全局访问点。
下面是一个用C++实现的单例模式示例:
```c++
class Singleton {
private:
static Singleton* instance;
Singleton() {} // 构造函数私有化,防止实例化多个对象
public:
static Singleton* getInstance() {
if(instance == nullptr) {
instance = new Singleton();
}
return instance;
}
void someMethod() {
// 该单例类的一些方法
}
};
Singleton* Singleton::instance = nullptr; // 静态成员变量需要在类外初始化
int main() {
Singleton* obj1 = Singleton::getInstance();
Singleton* obj2 = Singleton::getInstance();
if(obj1 == obj2) {
std::cout << "obj1和obj2是同一个实例" << std::endl;
}
return 0;
}
```
在这个示例中,Singleton类的构造函数被私有化,这意味着它只能在类内部被访问,因此无法从外部实例化多个对象。getInstance()方法是类的公共访问点,它返回一个指向Singleton类的唯一实例的指针。在main()函数中,我们从getInstance()方法获取两个对象,并进行比较,以确保它们是同一个实例。
阅读全文