在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
。這樣就實現了懶加載的功能。