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

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

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 23.04.2008, 13:01   #11
Иллидан
Форумчанин
 
Регистрация: 16.01.2008
Сообщений: 288
По умолчанию

Хм, интересный способ. А может, вы еще что-нибудь предложите с операторами деления и умножения? Кроме того, аналогичная ситуация у меня и с операторами сравнения.
Иллидан вне форума Ответить с цитированием
Старый 23.04.2008, 13:06   #12
B_N
Новичок
Джуниор
 
Регистрация: 18.01.2008
Сообщений: 1,720
По умолчанию

Цитата:
Сообщение от Иллидан Посмотреть сообщение
Хм, интересный способ. А может, вы еще что-нибудь предложите с операторами деления и умножения? Кроме того, аналогичная ситуация у меня и с операторами сравнения.
С операторами сравнения всё автоматически, как Вы понимаете, "<" = НЕ (">" ИЛИ "==") и т.д. С умножением и делением в принципе то же самое, только, конечно, важно не упустить из виду деление на 0 и особенности вещественных чисел (с "деньгами" на этой основе может получиться много неприятностей - округление "не туда" и т.п.)
B_N вне форума Ответить с цитированием
Старый 23.04.2008, 18:34   #13
Иллидан
Форумчанин
 
Регистрация: 16.01.2008
Сообщений: 288
По умолчанию

Цитата:
С операторами сравнения всё автоматически, как Вы понимаете, "<" = НЕ (">" ИЛИ "==") и т.д.
Не очень понял сейчас у меня для '<' написан такой код.
Код:
bool TMoney::operator <(TMoney A)   
{  
 
float a,temp;  
TMoney ftemp;   
// тут идет одинаковый код   
//-------------------------   
if (temp<a)   
return true
else
return false;  
}
И как мне теперь упростить перегрузку других операторов сравнения?

Цитата:
С умножением и делением в принципе то же самое
Вы предлагаете ввести унарный оператор деления или умножения?
Иллидан вне форума Ответить с цитированием
Старый 23.04.2008, 19:25   #14
B_N
Новичок
Джуниор
 
Регистрация: 18.01.2008
Сообщений: 1,720
По умолчанию

Цитата:
Сообщение от Иллидан Посмотреть сообщение
Не очень понял сейчас у меня для '<' написан такой код.
Код:
bool TMoney::operator <(TMoney A)   
{  
 
float a,temp;  
TMoney ftemp;   
// тут идет одинаковый код   
//-------------------------   
if (temp<a)   
return true
else
return false;  
}
И как мне теперь упростить перегрузку других операторов сравнения?


Вы предлагаете ввести унарный оператор деления или умножения?
Нужно ещё написать "operator==", потом можно будет просто для ">" return (! operator ==(A) && !operator<(A)), правда для этого может понадобиться два вызова, но это уже смотрите, что Вам больше нравится, два вызова или меньше одинакового кода. Правда, проще, сделать вспомогательную функцию сравнения, чтобы она возвращала, скажем, -1, 0 или 1 и проверять уже то, что она вернёт, или вообще воспользоваться уже имеющимся вычитанием (правда тоже может понадобиться два вызова или какая-нибудь мудрёная логика).
B_N вне форума Ответить с цитированием
Старый 24.04.2008, 11:18   #15
Иллидан
Форумчанин
 
Регистрация: 16.01.2008
Сообщений: 288
По умолчанию

Спасибо, с операторами сравнения все ясно. А что насчет операторов деления и умножения?
Иллидан вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Перегрузка операторов, Организация перегрузки операторов chagin_yav Помощь студентам 2 12.05.2008 09:15
Использование операторов цикла кася Паскаль, Turbo Pascal, PascalABC.NET 3 02.05.2008 00:32
Помогите оптимизировать! Altera Общие вопросы Delphi 6 25.03.2008 20:09
Оптимизировать код NeiL Помощь студентам 2 21.02.2008 08:57
Помогите оптимизировать сайт Nadejda HTML и CSS 4 07.01.2007 21:04