Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
0 / 0 / 0
Регистрация: 17.03.2017
Сообщений: 20
1

Перегрузка операторов /=, +=, -=

23.11.2018, 13:01. Показов 830. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый день.
Есть 3 дроби F1, F2, F3 и нужно перегрузить оператор /=, у меня это выглядит так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
    
void operator/=(Fraction f2)
    {
        Fraction result;
        if (Integer)
        {
            ToImproper();
            f2.ToImproper();
            setNumerator(Numerator * f2.Denominator);
            setDenominator(Denominator * f2.Numerator);
            ToProper();
 
        }
        else
        {
            setNumerator(Numerator * f2.Denominator);
            setDenominator(Denominator * f2.Numerator);
            ToProper();
        }
    }
Но при дробях
Fraction F1(4, 10, 2);
Fraction F2(2, 2, 2);
Fraction F3 = F1 / F2;
F3 выводит 3, а F1 / F2 выводит 9. Где ошибка?
Вот метод перегрузки оператора деления:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
    Fraction operator/(Fraction f2)
    {
        Fraction result;
        if (Integer)
        {
            ToImproper();
            f2.ToImproper();
            result.Numerator = Numerator * f2.Denominator;
            result.Denominator = Denominator * f2.Numerator;
            result.ToProper();
        }
        else
        {
            result.Numerator = Numerator * f2.Denominator;
            result.Denominator = Denominator * f2.Numerator;
            result.ToProper();
        }
 
        return result;
    }
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
23.11.2018, 13:01
Ответы с готовыми решениями:

Что такое "перегрузка операторов"? Каковы принципы работы перегруженных операторов и назначение указателя this
Добрый день . Помогите понять принцип работы перегрузки операторов. объясните пожалуйста в...

Перегрузка операторов
Расскажите пожалуйста про перегрузку в классе: всегда ли в ней должен быть return и что в нём...

Перегрузка операторов
Нужно перегрузить оператор сложения и вычитания, пытался но никак не получается. Подскажите как...

Перегрузка операторов С++
Здравствуйте, недавно начал изучать С++, до этого старался решать проблемы самостоятельно, но...

1
7803 / 6567 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
23.11.2018, 18:20 2
Что означают три числа в конструкторе? Где остальное?
0
23.11.2018, 18:20
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
23.11.2018, 18:20
Помогаю со студенческими работами здесь

Перегрузка операторов
Ругается на операторы != и < в 208 - 209 строках. На сколько я понял нужно перегрузить их. Можете...

Перегрузка операторов
Приветствую! Необходима помощь. Разработать класс Vec4 как вектор из 4-х float. Определить...

Перегрузка операторов
Здравствуйте. Есть класс, переменной членом которого является массив. Необходимо, перегрузить...

Перегрузка операторов
Вот такое вот задание: Создать класс А с 4 полями, отражающие показатели объекта. Перегрузить...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Как подключить JavaScript файл в другом JavaScript файле
InfoMaster 20.01.2025
В современной веб-разработке организация кодовой базы играет ключевую роль в создании масштабируемых и поддерживаемых приложений. Модульность и правильное структурирование кода стали неотъемлемыми. . .
Как откатить изменения в исходниках, не внесенные в Git
InfoMaster 20.01.2025
При работе с системой контроля версий Git разработчики часто сталкиваются с необходимостью отменить внесенные изменения в исходном коде. Особенно актуальной становится ситуация, когда изменения еще. . .
В чем разница между px, in, mm, pt, dip, dp, sp
InfoMaster 20.01.2025
В мире цифрового дизайна и разработки интерфейсов правильный выбор единиц измерения играет ключевую роль в создании качественного пользовательского опыта. История развития систем измерений для. . .
Как изменить адрес удалённого репозитория (origin) в Git
InfoMaster 20.01.2025
В терминологии Git термин origin является стандартным именем для основного удаленного репозитория, с которым взаимодействует локальная копия проекта. Когда разработчик клонирует репозиторий с. . .
Как переместить последние коммиты в новую ветку (branch) в Git
InfoMaster 20.01.2025
При работе над проектом часто возникают ситуации, когда необходимо изолировать определенные изменения от основной линии разработки. Это может быть связано с экспериментальными функциями, исправлением. . .
Как вернуть результат из асинхронной функции в JavaScript
InfoMaster 20.01.2025
Асинхронное программирование представляет собой фундаментальную концепцию в JavaScript, которая позволяет выполнять длительные операции без блокировки основного потока выполнения программы. В. . .
Какой локальный веб-сервер выбрать
InfoMaster 19.01.2025
В современной веб-разработке локальные веб-серверы играют ключевую роль, предоставляя разработчикам надежную среду для создания, тестирования и отладки веб-приложений без необходимости использования. . .
Почему планшеты и iPad уже не так популярны, как раньше
InfoMaster 19.01.2025
Эра революционных инноваций История планшетов началась задолго до того, как эти устройства стали привычными спутниками нашей повседневной жизни. В начале 1990-х годов появились первые прототипы,. . .
Как самому прошить BIOS ноутбука
InfoMaster 19.01.2025
BIOS (Basic Input/ Output System) представляет собой важнейший компонент любого компьютера или ноутбука, который обеспечивает базовое взаимодействие между аппаратным и программным обеспечением. . .
Какой Linux выбрать для домашнего компьютера
InfoMaster 19.01.2025
Современные реалии выбора операционной системы В современном мире выбор операционной системы для домашнего компьютера становится все более важным решением, которое может существенно повлиять на. . .
Как объединить два словаря одним выражением в Python
InfoMaster 19.01.2025
В мире программирования на Python работа со словарями является неотъемлемой частью разработки. Словари представляют собой мощный инструмент для хранения и обработки данных в формате "ключ-значение". . . .
Как без исключения проверить существование файла в Python
InfoMaster 19.01.2025
При разработке программного обеспечения на Python часто возникает необходимость проверить существование файла перед выполнением операций с ним. Это критически важная задача, которая помогает избежать. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru