Константная функция вызывает неконстантную функцию или наоборот (во избежание дублирования)? [дубликат]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];), поэтому я не могу просто опубликовать его. Таким образом, таблица и любой ее член не являются константами.
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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