单例模式确保一个类只有一个实例,并提供一个全局访问点。以下是一个简单的C++例程,演示了单例模式的实现。在这个例子中,我们创建了一个名为 Singleton 的类,它只能创建一个实例。
#include <iostream>
class Singleton {
public:
// 获取单例实例的全局访问点
static Singleton& getInstance() {
// 使用局部静态变量确保只创建一次实例
static Singleton instance;
return instance;
}
// 示例成员函数
void showMessage() {
std::cout << "Hello from Singleton!" << std::endl;
}
// 禁用拷贝构造函数和赋值运算符
Singleton(const Singleton&) = delete;
Singleton& operator=(const Singleton&) = delete;
private:
// 私有构造函数,确保不能通过外部代码创建实例
Singleton() {
std::cout << "Singleton instance created." << std::endl;
}
// 私有析构函数,确保不能通过外部代码销毁实例
~Singleton() {
std::cout << "Singleton instance destroyed." << std::endl;
}
};
int main() {
// 获取单例实例
Singleton& instance1 = Singleton::getInstance();
Singleton& instance2 = Singleton::getInstance();
// 验证实例是否相同
std::cout << "Are instances the same? " << (&instance1 == &instance2 ? "Yes" : "No") << std::endl;
// 使用单例实例
instance1.showMessage();
instance2.showMessage();
return 0;
}