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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 5.00
2e1773ce
6 / 6 / 0
Регистрация: 10.03.2013
Сообщений: 96
#1

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

03.06.2013, 17:43. Просмотров 1154. Ответов 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
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.06.2013, 17:43     const& и const* в имени функции
Посмотрите здесь:

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

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

Const в параметрах. Перед чем нужно употребить const дабы обезопасить данные от изменения - C++
const int Counter(const TSNum *Start) { int c=0; while(Start!=NULL){Start=Start-&gt;next;} return c; } Функция...

Ошибка: Cannot convert 'char const[18]' to 'const wchar_t *' - C++
Unit1.cpp(59): E2034 Cannot convert 'char const' to 'const wchar_t *' Full parser context Unit1.cpp(55): parsing: void _fastcall...

Cannot convert 'const wchar_t *' to 'const char *' - C++
HMODULE hMod=GetModuleHandle(NULL); if(!hMod) { } HRSRC hRes=FindResource(hMod,&quot;acc.dll&quot;,RT_RCDATA); if(!hRes){ } HGLOBAL...

const float & - C++
Заметил что часто передают и возвращают const float &amp; ( например в мат либах ), вместо простой передачи значения. Возникает вопрос: В...

(const string &) - C++
Есть класс class Someclass { public: Someclass( const string &amp;one ) { cout &lt;&lt; one; } };

error: invalid operands of types 'const int*' and 'const int*' to binary 'operator+' - C++
Что означает ошибка в 8 строчке error: invalid operands of types 'const int*' and 'const int*' to binary 'operator+'? ...

Cannot convert 'wchar_t &' to 'const char *' - C++
Вообщем есть вот такой кусок кода: while(ListBox1-&gt;Items-&gt;Strings!=&quot; &quot;) { i++; } При компиляции выдает во такую ошибку...

Const int& ссылки и константы в шаблонах - C++
Есть шаблон. В шаблоне есть константа int. Константу надо передать в STL функцию, принимающую const int&amp; в качестве аргумента. Однако же,...

Что при присваивается i в for(const auto& i : iVec1) ? - C++
Есть объявление вектора vector&lt;int&gt; iVec1 = {0,1,2,3,4,5}; Почему следующие два варианта цикла выдают одинаковые результаты ? (на...

int const и const int в чем разница этих записей - C++
Попалась мне тут программа для выборочно сортировки, с ней все в принципе ясно, но я в ней встретил записи, которые раньше не встречал,...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
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
1932 / 1541 / 141
Регистрация: 31.05.2009
Сообщений: 2,911
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* в имени функции
Ответ Создать тему
Опции темы

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