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

   2024-10-05 8900
核心提示:在C++中实现懒加载的单例类可以使用静态成员变量和静态成员函数来实现。以下是一个示例代码:class Singleton {private:static S

在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++中使用懒加载方式创建单例类的方法。

 
举报打赏
 
更多>同类物流大全
推荐图文
推荐物流大全
点击排行

网站首页  |  关于我们  |  联系方式 | 网站留言    |  赣ICP备2021007278号