Форум программистов, компьютерный форум CyberForum.ru

const& и const* в имени функции - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 5.00
2e1773ce
6 / 6 / 0
Регистрация: 10.03.2013
Сообщений: 96
03.06.2013, 17:43     const& и const* в имени функции #1
Объясните пожалуйста что значит const& и const* в имени и параметрах функции(пример из Вандевурд,Джосаттис):
C++
1
2
3
template <typename T>
inline T const& max(T const& a , T const& b){}
inline T const* max(T const* a , T const* b){}
в параметрах константная ссылка и константый указатель , а в имени? :O
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
tony_pershin
16 / 16 / 1
Регистрация: 05.03.2013
Сообщений: 36
03.06.2013, 17:49     const& и const* в имени функции #2
T const& a -- ссылка на неизменяемый объект типа T
T const* a -- указатель на неизменяемый объект типа T
То есть вы не сможете вызвать неконстантные методы объекта a.
Тут в комментах это неплохо обсудили: http://habrahabr.ru/post/137375/
2e1773ce
6 / 6 / 0
Регистрация: 10.03.2013
Сообщений: 96
03.06.2013, 18:05  [ТС]     const& и const* в имени функции #3
а перед именем функции зачем ставить const& / const* ?

Добавлено через 4 минуты
Забавно что на хабре 41 % ответил неправильно)
tony_pershin
16 / 16 / 1
Регистрация: 05.03.2013
Сообщений: 36
03.06.2013, 18:21     const& и const* в имени функции #4
С той же целью -- чтобы вернуть указатель/ссылку на неизменяемый объект.
Kastaneda
03.06.2013, 21:55
  #5

Не по теме:

Цитата Сообщение от 2e1773ce Посмотреть сообщение
Забавно что на хабре 41 % ответил неправильно)
73% ответили неправильно, 41 это просто самый популярный ответ. На хабре сейчас много школьников и бездарных студентов сидит, поэтому удивляться не чему

rangerx
1908 / 1517 / 139
Регистрация: 31.05.2009
Сообщений: 2,876
03.06.2013, 22:37     const& и const* в имени функции #6
http://www.parashift.com/c++-faq-lit...rrectness.html
Yandex
Объявления
03.06.2013, 22:37     const& и const* в имени функции
Ответ Создать тему
Опции темы

Текущее время: 02:16. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru