Я работаю над изучением C++ с помощью книги Страуструпа (Принципы и практика программирования с использованием C++). В упражнении мы определяем простую структуру:
template<typename T>
struct S {
explicit S(T v):val{v} { };
T& get();
const T& get() const;
void set(T v);
void read_val(T& v);
T& operator=(const T& t); // deep copy assignment
private:
T val;
};
Затем нас просят определить const и неконстантную функцию-член для получения val
.
Мне было интересно: есть ли случай, когда имеет смысл иметь неконстантную функцию get
которая возвращает val
?
Мне кажется намного чище, что мы не можем изменить значение в таких ситуациях косвенно. Какие могут быть случаи использования, когда вам нужна const и неконстантная функция get
для возврата переменной-члена?