Модераторы: bsa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> вопрос про const 
V
    Опции темы
gosn1ck
Дата 1.6.2009, 21:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 103
Регистрация: 18.4.2009

Репутация: 1
Всего: 1



глупый вопрос, но всё же хотелось бы разобраться до конца в разнице между

Код

int fun(int a) const;
const int fun(int a);
const int fun(int a) const;


правильно ли я понимаю, что в первый случай запрещает модификацию a ? если да, то тогда в чем отличие от int fun(const int a); ? или в int fun(int a) const; нельзя вообще применять операцию присваивания?

второй случай мне понятен лишь тем что постоянен возвращаемый результат, но постоянен относительно чего? можете кто-нибудь привести примерчик?

спасибо за внимание smile

PM MAIL ICQ   Вверх
mes
Дата 1.6.2009, 21:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 79
Всего: 250



Цитата(gosn1ck @  1.6.2009,  20:32 Найти цитируемый пост)
правильно ли я понимаю, что в первый случай запрещает модификацию a ? е

нет, он запрящает модификацию дата-членов объекта this и такой модификатор может быть применен только к нестатическим функциям-членам.

Код

class T { int fun(int a) const; }
нагляднее выглядит так :
int T::a ([T const * this],int a); //  где часть в квадратных скобках подставляется компилятором



Добавлено через 2 минуты и 49 секунд
Цитата(gosn1ck @  1.6.2009,  20:32 Найти цитируемый пост)
const int fun(int a) const;

const int применять смысла нет( особенно для возвращаемого значения) (в отличие от const int&), так как объект будет передаваться как копия , а не по ссылке/указателю.

Добавлено через 4 минуты и 56 секунд
Цитата(gosn1ck @  1.6.2009,  20:32 Найти цитируемый пост)
второй случай мне понятен лишь тем что постоянен возвращаемый результат, но постоянен относительно чего? можете кто-нибудь привести примерчик?

второй случай лишь говорит о том, что модифицировать возвращаемое значение нельзя. Но это не мешает присвоить копию возвращаемого значения не константной int-переменой  и модифицировать ее.


--------------------
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0647 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.