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

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

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

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

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

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

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

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

Описать класс "полином" - Для чего нужен конструктор по умолчанию? - C++
неоюходимо написать класс для работы с полиномами в нете нашел что-то поожее может кто-нибудь объяснить для чего нужен конструктор по...

Перегрузить операторы operator+() и operator*() в пользовательском классе "Комплексное число" - C++
Здравствуйте. Предлагаю заняться арифметикой. Создал прослейший класс, перегрузил операторы сложения и умножения, в конструкторе...

Написать перегрузку operator+() для класса "Массив" - C++
Добрый день, Подскажите, как выйти правильно из ситуации: Array& Array::operator+(const Array& obj) { Array temp; ...

Реализация перегрузки "operator +" для двух объектов - C++
С=A+B; Что то не получается в операторе operator+; #include <iostream.h> class MASS { int *num; int n; int...

Создание перегрузки метода "operator =" для типа, расположенного в ином namespace - C++
Здравствуйте. Столкнулся со следующей проблемой которая упрощено выглядит так namespace M{ struct A{ int b; ...

Перегрузка "operator =" для шаблона класса - C++
как правильно перегрузить operator= для щаблона, по идее я принимаю 2 ссылки на объекты этого класса и возвращаю 1 из них ... что-то не...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Jupiter
Каратель
Эксперт С++
6554 / 3975 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
11.10.2011, 18:34 #2
C++
1
2
3
4
5
One& One::operator += (const One& rhs)
{
    *itsA += *rhs.itsA; 
    return *this;
}
это перегрузка оператора +=
позволяет применять к объектам +=
0
Сыроежка
Заблокирован
11.10.2011, 18:41 #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 ).
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.10.2011, 18:41
Привет! Вот еще темы с ответами:

Глобальное переопределение "operator <<" для char * - C++
Здравствуйте. Привожу пример для демонстрации проблемы. Помогите пожалуйста в ее устранении или нивелировании. std::ostream&amp;...

Как переопределить "operator <<" для cout? - C++
использую RAD 2010 (MVS 2010 стал сильно тормозить и я перешёл). setlocale не помогает, функция char bufRus; char* Rus(const char*...

Чем "operator *=" отличается от "operator *"? - C++
снова застряла, не могу понять, чем этот оператор должен отличаться от оператора*.....? вот он, но это работает только в случае...

В зависимости от времени года "весна", "лето", "осень", "зима" определить погоду "тепло", "жарко", "холодно", "очень холодно" - C++
В зависимости от времени года &quot;весна&quot;, &quot;лето&quot;, &quot;осень&quot;, &quot;зима&quot; определить погоду &quot;тепло&quot;, &quot;жарко&quot;, &quot;холодно&quot;, &quot;очень холодно&quot;. Я так...


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

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

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