单例模式确保一个类只有一个实例,并提供一个全局访问点。以下是一个简单的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;
}