Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.71/7: Рейтинг темы: голосов - 7, средняя оценка - 4.71
2e1773ce
6 / 6 / 2
Регистрация: 10.03.2013
Сообщений: 96
1

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

03.06.2013, 17:43. Просмотров 1375. Ответов 5
Метки нет (Все метки)

Объясните пожалуйста что значит 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
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.06.2013, 17:43
Ответы с готовыми решениями:

Что это bool operator== (const CLASS&) const;
Что это? class CLASS { public: bool operator== (const CLASS&amp;)...

int const * const foo(const int* param) const - разъясните значение квалификаторов
int const * const foo(const int* param) const ...

Модификатор const для параметра функции не const?
void foo(const int N) { int Arr; //&lt;-- ??? } В clang это работает. В...

Почему friend ostrem& operator <<(ostream& outs, const Rational&); - invalid function declaration?
Пытаюсь скомпилировать программу пишет friend ostrem&amp; operator &lt;&lt;(ostream&amp;...

Error C2440: return: невозможно преобразовать "const char *" в "const char (&)[6]"
Вроде все правильно а все равно не работает. Подскажите в чем ошибка ...

5
tony_pershin
17 / 17 / 7
Регистрация: 05.03.2013
Сообщений: 36
03.06.2013, 17:49 2
T const& a -- ссылка на неизменяемый объект типа T
T const* a -- указатель на неизменяемый объект типа T
То есть вы не сможете вызвать неконстантные методы объекта a.
Тут в комментах это неплохо обсудили: http://habrahabr.ru/post/137375/
0
2e1773ce
6 / 6 / 2
Регистрация: 10.03.2013
Сообщений: 96
03.06.2013, 18:05  [ТС] 3
а перед именем функции зачем ставить const& / const* ?

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

Не по теме:

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

0
rangerx
1942 / 1551 / 478
Регистрация: 31.05.2009
Сообщений: 2,913
03.06.2013, 22:37 6
http://www.parashift.com/c++-faq-lite/const-correctness.html
1
03.06.2013, 22:37
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.06.2013, 22:37

char operator[](unsigned short offset) const; // что означает const?
Собстенно вопрос уже озвучен :).

Const в параметрах. Перед чем нужно употребить const дабы обезопасить данные от изменения
const int Counter(const TSNum *Start) { int c=0; ...

Ошибка: Cannot convert 'char const[18]' to 'const wchar_t *'
Unit1.cpp(59): E2034 Cannot convert 'char const' to 'const wchar_t *' Full...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru