Каков надлежащий способ реализации метода getter для лениво инициализированной переменной-члена и поддержания const-correctness? То есть, я хотел бы, чтобы мой метод getter был const, потому что после первого использования он является обычным методом getter. Только в первый раз (когда объект сначала инициализируется), const не применяется. Что я хотел бы сделать:
class MyClass {
MyClass() : expensive_object_(NULL) {}
QObject* GetExpensiveObject() const {
if (!expensive_object_) {
expensive_object = CreateExpensiveObject();
}
return expensive_object_;
}
private:
QObject *expensive_object_;
};
Могу ли я есть пирог и иметь его?