给我写一个C++单例模式
以下是一个简单的C++单例模式示例:
class Singleton {
private:
static Singleton* instance; // 静态实例指针
Singleton() {} // 构造函数私有化,防止外部实例化对象
public:
static Singleton* getInstance() { // 静态方法获取实例
if (instance == nullptr) { // 如果实例不存在,就创建一个
instance = new Singleton();
}
return instance;
}
};
Singleton* Singleton::instance = nullptr; // 初始化静态实例指针为nullptr
int main() {
Singleton* s1 = Singleton::getInstance();
Singleton* s2 = Singleton::getInstance();
if (s1 == s2) {
cout << "s1和s2是同一个实例" << endl;
}
return 0;
}
在上面的代码中,Singleton类只有一个私有的静态实例指针instance,它在第一次调用getInstance()方法时被创建。在后续的调用中,该方法返回的是同一个实例。由于构造函数被私有化,只能通过getInstance()方法来获取实例。这就确保了该类在程序中只有一个实例
原文地址: https://www.cveoy.top/t/topic/dxFa 著作权归作者所有。请勿转载和采集!