以下是一个简单的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 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录