C++单例类怎样实现懒加载

avatar
作者
筋斗云
阅读量:0

在C++中实现懒加载的单例类可以使用静态成员变量和静态成员函数来实现。以下是一个示例代码:

class Singleton { private:     static Singleton* instance; // 静态成员变量      Singleton() { } // 防止外部实例化 public:     static Singleton* getInstance() { // 静态成员函数返回单例实例         if (instance == nullptr) {             instance = new Singleton();         }         return instance;     } };  Singleton* Singleton::instance = nullptr; // 初始化静态成员变量  int main() {     Singleton* singleton1 = Singleton::getInstance();     Singleton* singleton2 = Singleton::getInstance();      if (singleton1 == singleton2) {         std::cout << "singleton1 and singleton2 are the same instance" << std::endl;     } else {         std::cout << "singleton1 and singleton2 are different instances" << std::endl;     }      return 0; } 

在上面的示例中,Singleton类有一个私有的静态成员变量instance用来存储单例实例。静态成员函数getInstance用来返回单例实例,当实例为nullptr时进行懒加载,即在第一次调用getInstance时创建实例。在main函数中,我们通过调用getInstance函数获取单例实例,并验证两个实例是否相同。

这样就实现了在C++中使用懒加载方式创建单例类的方法。

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!