0 / 0 / 0
Регистрация: 27.07.2016
Сообщений: 6
|
|
1 | |
Возвращение ссылок с const27.07.2016, 10:41. Показов 1208. Ответов 5
Метки нет (Все метки)
Объясните, пожалуйста, зачем делать возвращаемое значение из функции ссылкой с const, я понимаю, например, при передаче в функцию const &, чтобы не изменить передаваемую строчку или объект и т.д., но, а возвращать зачем как const &? то же с возвращением константных указателей и const ... *.
0
|
27.07.2016, 10:41 | |
Ответы с готовыми решениями:
5
Возвращение const ссылки на временный объект int const * const foo(const int* param) const - разъясните значение квалификаторов Возможно ли возвращение функцией двух значений? Именно возвращение, не ссылка или указатель char operator[](unsigned short offset) const; // что означает const? |
8739 / 4317 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
|
|
27.07.2016, 10:46 | 2 |
Сообщение было отмечено SatanaXIII как решение
Решение
все правильно.
продолжайте линию своей логики: что бы, например, при возврате из функции не изменили возвращаемую строку или объект. например, у вас есть класс - банкомат. вы выдаете наружу данные о состоянии счета пользователя. и вам нужны гарантии, что там снаружи никто эти данные не изменит. и деньги пользователя никуда не пропадут. вы возвращаете константную ссылку. читать можно, изменить - нельзя. (на самом деле можно. но это грязные хаки)
4
|
257 / 234 / 185
Регистрация: 02.04.2016
Сообщений: 898
|
|
27.07.2016, 11:19 | 3 |
http://www.e-reading.club/chap... e_CPP.html
И следующее правило тоже прочтите) Добавлено через 10 минут Вообще очень советую эту книгу, если основы знаете
1
|
Комп_Оратор)
|
||||||
27.07.2016, 15:14 | 4 | |||||
Вообще, чтобы вернуть ссылку нужно либо принять ссылку, либо иметь внутри (глобальную и др. внешние области видимости не рассматриваем, как и ссылки на объекты в динамической памяти) статическую переменную.
Остроты к ситуации добавляет возможность использовать вызов как rvalue в выражениях. В присваивании например, это выглядит просто и наглядно. Вот искусственный пример, но простой и зрелищный:
0
|
257 / 234 / 185
Регистрация: 02.04.2016
Сообщений: 898
|
|
27.07.2016, 15:18 | 5 |
kachetkar, Что как?
0
|
27.07.2016, 15:19 | 6 |
kachetkar, нормально. Как сам?
3
|
27.07.2016, 15:19 | |
27.07.2016, 15:19 | |
Помогаю со студенческими работами здесь
6
Что это bool operator== (const CLASS&) const; Const в параметрах. Перед чем нужно употребить const дабы обезопасить данные от изменения Ошибка: Cannot convert 'char const[18]' to 'const wchar_t *' Модификатор const для параметра функции не const? Cannot convert 'const wchar_t *' to 'const char *' const& и const* в имени функции Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |