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

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

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

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

30.09.2012, 05:41. Просмотров 567. Ответов 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
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Переопределение БИНАРНОГО оператора внутри класса (C++):

Переопределение оператора <<, класса ofstream - C++
#ifndef COUT_RUS_H #define COUT_RUS_H #include &lt;iostream&gt; #include &lt;windows.h&gt; namespace rus { class Ccout { ...

Переопределение оператора () для своего класса - C++
У меня вопрос. Как переопределить оператор () для своего класса?Если можно,приведите пример.

Определение класса, описывающего комплексное число. Перегрузка для него бинарного оператора "*" - C++
1. Определить класс, описывающий комплексное число. Для класса перегрузить бинарный оператор *. Написать программу, в которой используется...

Переопределение оператора == - C++
Здравствуйте. Такая проблема: для поиска требуется сравнить два числа(в 1-ом случае инты, во 2-ом даблы). Для интов все отлично, а для...

Переопределение оператора ++ - C++
Необходимо переопределить оператор ++ в классе IteratorBase так, чтобы при этом вызывалась функция next(). template &lt;class T&gt; ...

Переопределение оператора== - C++
Создал функцию-операцию == для экземпляров класса, однако при выполнении данного кода Trigger.h #pragma once #include...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
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
Форумчанин
Эксперт С++
4652 / 2860 / 228
Регистрация: 12.12.2009
Сообщений: 7,268
Записей в блоге: 2
Завершенные тесты: 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
Эксперт С++
4963 / 3039 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
02.10.2012, 14:14 #5
Kastaneda, не сказал бы, что это верно. Скорее, логическая цепочка такая: всегда стоит сохранять полноту, поэтому если пишется оператор +, то стоит написать также оператор +=. Оператор += лучше сделать членом соответствующего класса. Оператор + же лучше писать через оператор +=. Тогда ни на одном уровне этих размышлений не будет нарушена инкапсуляция, и в то же время сохранится полнота набора операций.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.10.2012, 14:14
Привет! Вот еще темы с ответами:

Переопределение оператора - C++
У меня есть класс вектора. Надо переопределить оператор умножения числа на вектор. class myvector { private: int x,y,z; public:...

Переопределение оператора присваивания - C++
Имеется такой простой класс: class TClass { private: float* A; int N; public: TClass(int _N) ...

Переопределение оператора в классе - C++
class String { char *mData; static const int c_size = 100; String(); String &amp; operator+=(const String &amp; s) { ...

Многоугольник. Переопределение оператора += - C++
Здравствуйте. Имеется класс Многоугольник. Преподаватель выдал доп.задания, одно из них переопределить += для добавления вершины (с...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
02.10.2012, 14:14
Ответ Создать тему
Опции темы

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