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

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

23.11.2018, 13:01. Показов 814. Ответов 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
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
23.11.2018, 13:01
Ответы с готовыми решениями:

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

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

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

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

1
7803 / 6567 / 2988
Регистрация: 14.04.2014
Сообщений: 28,706
23.11.2018, 18:20 2
Что означают три числа в конструкторе? Где остальное?
0
23.11.2018, 18:20
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
23.11.2018, 18:20
Помогаю со студенческими работами здесь

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru