阅读量:0
在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_loaded
和m_value
成员变量都被标记为mutable
,这样它们就可以在const
成员函数getValue()
中被修改。在getValue()
函数中,首先检查m_loaded
是否为false
,如果是,则调用loadValue()
方法加载数据,并将m_value
赋值为加载的值,然后将m_loaded
标记为true
。这样就实现了懒加载的功能。