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

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

Войти
Регистрация
Восстановить пароль
 
!Андрей!
6 / 6 / 0
Регистрация: 31.01.2012
Сообщений: 134
#1

Переопределение БИНАРНОГО оператора внутри класса - C++

30.09.2012, 05:41. Просмотров 562. Ответов 4
Метки нет (Все метки)

Подскажите как правильно переопределить оператор + для сласса chislo.

C++
1
2
3
4
5
class chislo
{
int val;
chislo chislo::operator +(const chislo &a, const chislo &b);
};
Пишет мне ошибку: Слишком много параметров для вызова данной функции. Что не так? (задача допусти сложить 2 э-та класса число и присвоить значение третьему э-ту класса число (типо с = а + б) при это а,б,с - элементы класса число.)

Понимаю что задача тупая и делается без переопределения, мне просто нужно понять принцип. Спасибо
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.09.2012, 05:41     Переопределение БИНАРНОГО оператора внутри класса
Посмотрите здесь:
Переопределение оператора <<, класса ofstream C++
C++ Переопределение оператора () для своего класса
C++ Определение класса, описывающего комплексное число. Перегрузка для него бинарного оператора "*"
Переопределение оператора== C++
Переопределение оператора == C++
C++ Переопределение оператора
Переопределение оператора ++ C++
Переопределение оператора в классе C++
C++ Переопределение оператора ввода
Переопределение оператора инкремента C++
Многоугольник. Переопределение оператора += C++
C++ Переопределение оператора присваивания

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ProNoooob
72 / 72 / 6
Регистрация: 14.10.2009
Сообщений: 121
30.09.2012, 06:05     Переопределение БИНАРНОГО оператора внутри класса #2
Цитата Сообщение от !Андрей! Посмотреть сообщение
class chislo
{
int val;
chislo operator +(const chislo &a)
{
return chislo(val + a.val);
}
};
Оператор принимает два аргумента.
1) this
2) ссылку на объект справа.
Kastaneda
Форумчанин
Эксперт С++
4511 / 2853 / 227
Регистрация: 12.12.2009
Сообщений: 7,248
Записей в блоге: 1
Завершенные тесты: 1
30.09.2012, 06:32     Переопределение БИНАРНОГО оператора внутри класса #3
operator+() рекомендуется делать френдом, поэтому вот будет правильно
C++
1
friend chislo operator +(const chislo &a, const chislo &b);
!Андрей!
6 / 6 / 0
Регистрация: 31.01.2012
Сообщений: 134
30.09.2012, 11:10  [ТС]     Переопределение БИНАРНОГО оператора внутри класса #4
Спасибо большое!
silent_1991
Эксперт С++
4960 / 3036 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
02.10.2012, 14:14     Переопределение БИНАРНОГО оператора внутри класса #5
Kastaneda, не сказал бы, что это верно. Скорее, логическая цепочка такая: всегда стоит сохранять полноту, поэтому если пишется оператор +, то стоит написать также оператор +=. Оператор += лучше сделать членом соответствующего класса. Оператор + же лучше писать через оператор +=. Тогда ни на одном уровне этих размышлений не будет нарушена инкапсуляция, и в то же время сохранится полнота набора операций.
Yandex
Объявления
02.10.2012, 14:14     Переопределение БИНАРНОГО оператора внутри класса
Ответ Создать тему
Опции темы

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