Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 29.09.2016, 22:16   #1
Rolot
Новичок
Джуниор
 
Регистрация: 29.09.2016
Сообщений: 2
По умолчанию Перегрузка операторов (с++)

Начал изучать с++. Подошел к теме ооп. Для начала взял пример разработать программу, работающую с комплексным числом. Взял элементы Re и Im. Перегрузил операторы, для сложения, вычитания и т.д. Все здорово, могу, например сложить 4-3i и -8+17i.
Теперь, пусть я создам объект класса a=5+7i. И захочу для него взять и домножить на -1, напишу -a и будет ошибка. Как в таком случае перегрузить оператор «-».
В продолжение, нужно умножить а на 4, т.е 4*a. Как быть тут?
Rolot вне форума Ответить с цитированием
Старый 29.09.2016, 22:32   #2
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,709
По умолчанию

Цитата:
Как в таком случае перегрузить оператор «-».
Так же, как и другие operator - () ...

Цитата:
В продолжение, нужно умножить а на 4, т.е 4*a. Как быть тут?
В простейшем случае сделайте конструктор 4 -> 4 + 0*i и перегрузите для класса *
p51x вне форума Ответить с цитированием
Старый 29.09.2016, 22:49   #3
Rolot
Новичок
Джуниор
 
Регистрация: 29.09.2016
Сообщений: 2
По умолчанию

Цитата:
Сообщение от p51x Посмотреть сообщение
Так же, как и другие operator - () ...


В простейшем случае сделайте конструктор 4 -> 4 + 0*i и перегрузите для класса *
Простите, но я не понял.
Я перегрузил операцию минус допустим так:
Код:
ComplexNumber ComplexNumber::operator-(const ComplexNumber &a)
но оно все равно ругается на запись -a.

Правильно я понимаю, что я Вы имеете ввиду, что нужно из 4 сделать комплексное число? А возможно ли это сделать по другому?
Rolot вне форума Ответить с цитированием
Старый 30.09.2016, 06:58   #4
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,709
По умолчанию

Код:
operator - ()
operator-(const ComplexNumber &a)
Смотрим внимательно и ищем разницу. У вас же унарная операция.
p51x вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
перегрузка операторов Sv1 Помощь студентам 0 02.11.2014 03:12
Перегрузка операторов(С++) Aero93 Помощь студентам 1 18.04.2012 17:00
С++,перегрузка операторов colesik Помощь студентам 0 23.12.2010 23:07
Перегрузка операторов в С++ Purr Помощь студентам 0 09.10.2010 15:12
Перегрузка операторов, Организация перегрузки операторов chagin_yav Помощь студентам 2 12.05.2008 09:15