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

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

Войти
Регистрация
Восстановить пароль
 
bearwoolfs
 Аватар для bearwoolfs
15 / 15 / 1
Регистрация: 10.01.2011
Сообщений: 275
#1

Для чего нужен "operator"? - C++

11.10.2011, 18:30. Просмотров 581. Ответов 2
Метки нет (Все метки)

Вот такой пример :
One One::operator+=(One & rhs)
{

*itsA+=rhs.Get();
return *this;
}

Вообще ну ни как не могу догнать для чего нужен этот operator и что не правильно в этом примере при сумирование ??? Спасибо
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.10.2011, 18:30     Для чего нужен "operator"?
Посмотрите здесь:

Реализация перегрузки "operator +" для двух объектов C++
Для чего в коде нужна строка "using namespace std"? C++
C++ Чем "operator *=" отличается от "operator *"?
C++ Как переопределить "operator <<" для cout?
Описать класс "полином" - Для чего нужен конструктор по умолчанию? C++
Для чего функции поместили в "тип данных"? C++
Перегрузка "operator =" для шаблона класса C++
C++ Expected init-declarator before "operator".expected `,' or `;' before "operator"
C++ Создание перегрузки метода "operator =" для типа, расположенного в ином namespace
Глобальное переопределение "operator <<" для char * C++
C++ Написать перегрузку operator+() для класса "Массив"
Перегрузить операторы operator+() и operator*() в пользовательском классе "Комплексное число" C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Jupiter
Каратель
Эксперт C++
6547 / 3967 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
11.10.2011, 18:34     Для чего нужен "operator"? #2
C++
1
2
3
4
5
One& One::operator += (const One& rhs)
{
    *itsA += *rhs.itsA; 
    return *this;
}
это перегрузка оператора +=
позволяет применять к объектам +=
Сыроежка
Заблокирован
11.10.2011, 18:41     Для чего нужен "operator"? #3
Цитата Сообщение от bearwoolfs Посмотреть сообщение
Вот такой пример :
One One::operator+=(One & rhs)
{

*itsA+=rhs.Get();
return *this;
}

Вообще ну ни как не могу догнать для чего нужен этот operator и что не правильно в этом примере при сумирование ??? Спасибо
Для встроенных типов, как, например, типа int, вы можете писать арифметические выражения вида

C++
1
2
3
4
int x = 10;
int y = 5;
 
x += y;
Очевидно, что для типов, определенных пользователем, таких встроенных арифметических операций нет, так как компилятор не знает, что вы имеете в виду для своего определенного типа под оператором +=. Чтобы можно было этот оператор использовать с определенными пользователем типами, как, например, с типом One из вашего примера, вам позволяется самому задать определение операции += для типа One. Это и делается в приведенном вами коде. Поэтому если у вас есть переменные типа One x и y, то для них, как и для встроенных типов, вы можете написать выражение

C++
1
x += y;
Когда компилятор встретит в коде эту строчку, он заменит ее на вызов определенной вами функции-оператора x.operator +=( y ).
Yandex
Объявления
11.10.2011, 18:41     Для чего нужен "operator"?
Ответ Создать тему
Опции темы

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