Избегать повторения постоянных и неконстантных версий геттеров?

struct BananaHolder
{
vector<Banana>& getBananas();
const vector<Banana>& getBananas() const;
};

Мои занятия загромождены этим видом дублирования.

Есть ли более чистая, более элегантная альтернатива?

3

Решение

Если ваш класс имеет возвращать ссылки, и если он должен возвращать ссылку на модифицируемый вектор при вызове модифицируемого объекта, то я не думаю, что есть способ избежать дублирования — по крайней мере, не объявление дубликата.

Обратите внимание, что некоторые типы стандартной библиотеки также страдают от той же проблемы. Например, контейнеры последовательности, такие как std::vector иметь как const и неconst перегрузка operator [], at(), back(), front(), data(), и так далее.

4

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector