c++

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

小樊
84
2024-08-18 09:07:35
栏目: 编程语言

在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。这样就实现了懒加载的功能。

0
看了该问题的人还看了