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

Перегрузка операторов ==, !=, <, > для класса "Дробь" - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Переписать код с Делфи на С++ http://www.cyberforum.ru/cpp-beginners/thread1763574.html
procedure TForm1.BitBtn2Click(Sender: TObject); begin if Edit1.Text=DataModule11.ADOTable1.FieldByName('pass').AsString then begin Screen.Cursor := crHourGlass; Form3.Label10.Caption:=DataModule11.ADOTable1.FieldByName('type_polz').AsString; Form3.Label11.Caption:=DataModule11.ADOTable1.FieldByName('login').AsString;...
C++ Пишет в программе Declaration syntax error Компилятор Borland C++ 3.1 ругается на функцию IsPositive #include <iostream.h> #include <iomanip.h> #include <ctype.h> #define SZ 4 #define AR_SZ SZ * 2 - 2 bool IsPositive(int* ar) { for(int i = 0; i < SZ; i++) http://www.cyberforum.ru/cpp-beginners/thread1763556.html
Описать класс "Группа", состоящий из динамического массива студентов C++
Только начал изучение классов, начал делать задание, в котором нужно создать класс студент, где нужно создать методы по заполнению имени, возраста и т.д. С этим я справился, но потом нужно создать класс "Группа", и уже в нём создать динамический класс студентов, создать методы заполнения массива и вывода его на экран. И тут у меня и возникли сложности: как заполнить этот массив? где нужно...
C++ Вывод консоли в оконном приложении
Мне нужно затестировать как работает функция, т.е. выводить каждую операцию... Что - то неправильно клеит биты у меня...void DecToBin(char tByte, int len, byte bText) { int b = 0, t = -1, j = 8; while(++t < len) { if(tByte == ' ') {
C++ Распараллеливание программы http://www.cyberforum.ru/cpp-beginners/thread1763511.html
Помогите эту последовательную программу распараллелить на параллельных 2 процесса. #include <iostream> #include<thread> using namespace std; int a = 0, b = 0; int main() { a += 5; // всё что связано с "а" один || процесс a *= 2; cout << "a: " << a << endl;
C++ Нужно заменить cout на printf а cin на scanf #include <iostream> using namespace std; int main() { int **A,*B,N,M,i,j; cout<<"N="; // Ввод размера матрицы cin>>N; cout<<"M="; cin>>M; подробнее

Показать сообщение отдельно
sergentiy
0 / 0 / 0
Регистрация: 03.07.2015
Сообщений: 39
15.06.2016, 17:23     Перегрузка операторов ==, !=, <, > для класса "Дробь"
Не могу найти ошибку, почему то числитель второй дроби увеличивается... Думал может что-то с конструкторами, но вроди все ок... Алгоритмы тоже вроде норм... Взгляните свежим взглядом кому не лень, код маленький. Спасибо!

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
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
class Drib
{
private:
    int chus;
    int znam;
 
public:
    Drib()
    {
        chus = 1;
        znam = 1;
    }
 
    Drib(int chus)
    {
        this->chus = chus;
        znam = 1;
    }
 
    Drib(int chus, int znam)
    {
        this->chus = chus;
        if (znam != 0)
            this->znam = znam;
        else
        {
            cout << "Znam ne mojet = 0" << endl;
        }
    }
 
    Drib(const Drib & obj)
    {
        chus = this->chus;
        chus = this->znam;
    }
 
    int GetChus()
    {
        return chus;
    }
 
    void SetChus(int chus)
    {
        this->chus = chus;
    }
 
    int GetZnam()
    {
        return znam;
    }
 
    void SetZnam(int zman)
    {
        if (znam != 0)
            this->znam = znam;
        else
        {
            cout << "Znam ne mojet = 0" << endl;
        }
    }
 
    void Show()
    {
        cout << " " << chus << "/" << znam << " ";
    }
 
    
 
    bool operator<(Drib& z)
    {
        if ((double)(this->chus / this->znam)<(double)(z.chus / z.znam))
            return true;
        else
            return false;
    }
 
    bool operator>(Drib& z)
    {
        return ((double)(this->chus / this->znam)>(double)(z.chus / z.znam)) ? true : false;
    }
 
    bool operator == (Drib& z)
    {
        return ((double)(this->chus / this->znam) == (double)(z.chus / z.znam)) ? true : false;
    }
 
    bool operator !=(Drib& z)
    {
        return ((double)(this->chus / this->znam) != (double)(z.chus / z.znam)) ? true : false;
    }
 
};
 
int main()
{
 
    Drib y(2, 5);
    Drib z(3, 5);
 
    if (y == z)
    {
        y.Show();
        cout << "==";
        z.Show();
    }
 
    if (y != z)
    {
        y.Show();
        cout << "!=";
        z.Show();
    }
 
    if (y>z)
    {
        y.Show();
        cout << ">";
        z.Show();
    }
 
    if (y<z)
    {
        y.Show();
        cout << "<";
        z.Show();
    }
 
 
    return 0;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 04:38. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru