Константная функция вызывает неконстантную функцию или наоборот (во избежание дублирования)? [дубликат]C++

Программы на C++. Форум разработчиков
Гость
Константная функция вызывает неконстантную функцию или наоборот (во избежание дублирования)? [дубликат]

Сообщение Гость »


Есть ли преимущество использования одного перед другим:

класс Foo { публика: const int и get() const { // здесь что-то вернуть мойИнт; } int& получить() { return const_cast(static_cast(this)->get()); } }; Или

класс Foo { публика: int& получить() { // здесь что-то вернуть мойИнт; } const int и get() const { return const_cast(this)->get(); } }; Я использовал только первый вариант, но только что видел, как где-то использовался второй, поэтому мне интересно.

Комментарий // здесь может представлять собой нетривиальную проверку, например, получение индекса таблицы, чтобы вернуть ссылку на член таблицы (например: myInt = myTable[myComputedIndex];), поэтому я не могу просто опубликовать его. Таким образом, таблица и любой ее член не являются константами.

Вернуться в «C++»