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

Перегрузка операторов - C++

Восстановить пароль Регистрация
 
ChuckNorris
2 / 2 / 0
Регистрация: 25.10.2012
Сообщений: 42
26.03.2013, 21:20     Перегрузка операторов #1
Всем привет. Мне нужно ввести класс для работы с объектом "рациональная дробь" вида (m / n) (рациональная дробь это дробь у которого числитель больше знаменателя) и реализовать такие перегрузки операторов: сложение (вычитание) двух дробей (+, -). Незнаю как это сделать помогите пожалуйста
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.03.2013, 21:20     Перегрузка операторов
Посмотрите здесь:

перегрузка операторов C++
C++ перегрузка операторов
C++ Перегрузка операторов
Перегрузка операторов C++
C++ Перегрузка операторов
C++ Перегрузка операторов С++
C++ перегрузка операторов
C++ Перегрузка операторов

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Большой_Стен
13 / 13 / 1
Регистрация: 22.04.2012
Сообщений: 99
27.03.2013, 00:46     Перегрузка операторов #2
перегрузку << и >> для работы с потоками я понял не надо перегружать. тогда этого должно хватить
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
class Fraction
{
    public:
    Fraction (){}
    Fraction (int _m, int _n) : m(_m), n(_n) {}//не уверен, обязательна ли проверка на то, что числитель больше знаменателя
    int getM() const {return m;}
    int getN() const {return n;}
    void setM(int _m) {m=_m;}
    void setN(int _n) {n=_n;}
    Fraction operator + (const Fraction& fraction_right)
    {
        Fraction result_fraction;
        result_fraction.n=this->n*fraction_right.n;//знаменатель результирующей дроби - произведение знаменателей исходных дробей
        result_fraction.m=result_fraction.n/this->n*this->m+result_fraction.n/fraction_right.n*fraction_right.m;
        return result_fraction;
    }
    Fraction operator - (const Fraction& fraction_right)
    {
        Fraction result_fraction;
        result_fraction.n=this->n*fraction_right.n;//знаменатель результирующей дроби - произведение знаменателей исходных дробей
        result_fraction.m=result_fraction.n/this->n*this->m-result_fraction.n/fraction_right.n*fraction_right.m;
        return result_fraction;
    }
    private:
    int m,n;
};
Yandex
Объявления
27.03.2013, 00:46     Перегрузка операторов
Ответ Создать тему
Опции темы

Текущее время: 07:06. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru