如何通过mutable关键字实现C++的懒加载功能

   2024-10-01 5900
核心提示:在C++中,可以使用mutable关键字来实现懒加载功能。mutable关键字可以用于修饰类的成员变量,使其可以在const成员函数中被修改。

在C++中,可以使用mutable关键字来实现懒加载功能。mutable关键字可以用于修饰类的成员变量,使其可以在const成员函数中被修改。

以下是一个简单的示例,演示了如何使用mutable关键字实现懒加载功能:

#include <iostream>class LazyLoader {public:    LazyLoader() : m_loaded(false) {}    int getValue() const {        if (!m_loaded) {            m_value = loadValue(); // 懒加载            m_loaded = true;        }        return m_value;    }private:    mutable bool m_loaded;    mutable int m_value;    int loadValue() const {        std::cout << "Loading value..." << std::endl;        return 42;    }};int main() {    LazyLoader loader;        std::cout << loader.getValue() << std::endl;    std::cout << loader.getValue() << std::endl;    return 0;}

在上面的示例中,LazyLoader类中的m_loadedm_value成员变量都被标记为mutable,这样它们就可以在const成员函数getValue()中被修改。在getValue()函数中,首先检查m_loaded是否为false,如果是,则调用loadValue()方法加载数据,并将m_value赋值为加载的值,然后将m_loaded标记为true。这样就实现了懒加载的功能。

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

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