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

Const в конце строки - C++

Восстановить пароль Регистрация
 
Мариам
 Аватар для Мариам
0 / 0 / 0
Регистрация: 23.09.2013
Сообщений: 10
23.09.2013, 22:39     Const в конце строки #1
Не могу разобраться с частью кода, программа считает комплексные числа.

ComplexNumber const operator + (ComplexNumber const & cmpx) const
{
return ComplexNumber(m_real + cmpx.GetReal(), m_img + cmpx.GetImg());
}

ComplexNumber const operator - (ComplexNumber const & cmpx) const
{
return ComplexNumber(m_real - cmpx.GetReal(), m_img - cmpx.GetImg());


ComplexNumber название класса далее зачем const? и после перегрузки оператора тоже для чего он???
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.09.2013, 22:39     Const в конце строки
Посмотрите здесь:

Cannot convert 'const wchar_t *' to 'const char *' C++
Пробел в конце строки C++
C++ Что это bool operator== (const CLASS&) const;
const в конце объявления метода делает только *this константным? C++
C++ const& и const* в имени функции
C++ Const в параметрах. Перед чем нужно употребить const дабы обезопасить данные от изменения
C++ Поиск самой длинной строки в const char**
Мусор в конце строки C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
castaway
Эксперт С++
4841 / 2980 / 367
Регистрация: 10.11.2010
Сообщений: 11,012
Записей в блоге: 10
Завершенные тесты: 1
23.09.2013, 22:56     Const в конце строки #2
Вы уже видели данный пост, но все же: Const в функциях-членах класса
IGPIGP
Комп_Оратор)
 Аватар для IGPIGP
6166 / 2895 / 282
Регистрация: 04.12.2011
Сообщений: 7,695
Записей в блоге: 3
24.09.2013, 00:29     Const в конце строки #3
Мариам, const это ключевое слово которое информирует компилятор, что что-то изменять нельзя.
const int a = 3;//даже инициализировать нужно в момент объявления потому-что
a = 4; //уже не компилируется.
Теперь о методах экземпляра класса (оператор это тоже метод экземпляра вызываемый особым образом)...
Скорее всего перегружать операторы + и - с типом возврата const это неправильно. Потом не сможете использовать результат для модификации полей.
А слово const между закрывающей скобкой сигнатуры объявления (круглой) и открывающей скобкой тела (фигурной), говорит о том, что это константный метод. Это уведомление компилятору о том, что Вы не намерены изменять поля класса. По-этому компилятор не даст вам это сделать и явно, и вызвать не константный метод. Компилятор не умеет отслеживать изменяете ли Вы поле класса или нет при вызове не константного метода и ему достаточно подозрения, что Вы сможете это сделать в принципе. По-этому попытку прямого изменения поля или вызов не константного метода в константный компилировать не будет. Об этом написано везде. Почитайте.

Добавлено через 12 минут
Цитата Сообщение от IGPIGP Посмотреть сообщение
Скорее всего перегружать операторы + и - с типом возврата const это неправильно. Потом не сможете использовать результат для модификации полей.
Это я типичную глупость сморозил. На ночь глядя.
Yandex
Объявления
24.09.2013, 00:29     Const в конце строки
Ответ Создать тему
Опции темы

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