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

Перегрузка операций - C++

Восстановить пароль Регистрация
 
BlackBass
0 / 0 / 0
Регистрация: 23.11.2013
Сообщений: 14
29.11.2013, 19:09     Перегрузка операций #1
Разработайте программу на языке С++, используя пользовательский тип данных – классы и перегрузку операций.
Создайте класс Fraction (обыкновенная дробь), включающего поля: числитель и знаменатель. Реализовать методы определения обратной дроби и вывода дроби. Перегрузить операции сложения, вычитания и умножения дробей.
Помогите с лабой пожалуйста
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.11.2013, 19:09     Перегрузка операций
Посмотрите здесь:

C++ перегрузка операций С++
C++ Перегрузка операций << и >>
перегрузка операций C++
C++ перегрузка операций
Перегрузка операций C++
C++ Перегрузка операций
Перегрузка операций C++
C++ Перегрузка операций

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
metaluga145
243 / 244 / 20
Регистрация: 08.04.2013
Сообщений: 927
29.11.2013, 19:34     Перегрузка операций #2
BlackBass, мы с удовольствием поможем, скажите как нам это сделать)
caiman
 Аватар для caiman
11 / 11 / 1
Регистрация: 17.11.2013
Сообщений: 39
29.11.2013, 20:16     Перегрузка операций #3
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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
#include <iostream>
 
class Fraction {
    private:
        int numerator;
        int denominator;
    public:
        Fraction(int numerator, int denominator) : numerator(numerator), denominator(denominator) {}
 
        int getNumerator() const {
            return numerator;
        }
        int getDenominator() const {
            return denominator;
        }
 
        void reverse() {
            int tmp = numerator;
 
            numerator = denominator;
            denominator = tmp;
        }
 
        Fraction getReversed() {
            return Fraction(denominator, numerator);
        }
 
        Fraction operator+(const Fraction other) {
            if ( denominator == other.denominator ) {
                return Fraction(numerator+other.numerator, denominator);
            }
            int num = numerator * other.denominator + other.numerator * denominator;
            int denom = denominator * other.denominator;
            return Fraction(num, denom);
        }
 
        Fraction operator-(const Fraction other) {
            if ( denominator == other.denominator ) {
                return Fraction(numerator-other.numerator, denominator);
            }
            int num = numerator * other.denominator - other.numerator * denominator;
            int denom = denominator * other.denominator;
            return Fraction(num, denom);
        }
 
        Fraction operator*(const Fraction other) {
            return Fraction(numerator * other.numerator, denominator * other.denominator);
        }
 
        Fraction operator/(const Fraction other) {
            return Fraction(numerator * other.denominator, denominator * other.numerator);
        }
 
};
 
std::ostream& operator<<(std::ostream& out, const Fraction& fraction) {
    out << fraction.getNumerator() << "/" << fraction.getDenominator();
    return out;
}
 
int main() {
    Fraction a(2, 7);
    Fraction b(3, 7);
    Fraction c(2, 9);
    Fraction d(1, 2);
    Fraction e(5, 6);
 
    std::cout << "a: " << a << std::endl;
    std::cout << "b: " << b << std::endl;
    std::cout << "c: " << c << std::endl;
 
    std::cout << a << " + " << b << " = " << a+b << std::endl;
    std::cout << a << " + " << c << " = " << a+c << std::endl;
 
    std::cout << b << " - " << a << " = " << b-a << std::endl;
    std::cout << e << " - " << d << " = " << e-d << std::endl;
 
    std::cout << a << " * " << c << " = " << a*c << std::endl;
 
    std::cout << a << " / " << b << " = " << a/b << std::endl;
    std::cout << c << " / " << a << " = " << c/a << std::endl;    
 
    std::cout << "reversed a: " << a.getReversed() << std::endl;
    b.reverse();
    std::cout << "reversed b: " << b << std::endl;
    
    return 0;
}
Добавлено через 1 минуту
В общем и целом как-то так. Приведением к общему знаменателю и сокращением сам озадачься - твоя лаба в конце концов.
Yandex
Объявления
29.11.2013, 20:16     Перегрузка операций
Ответ Создать тему
Опции темы

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