Форум программистов, компьютерный форум 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, 21:36  [ТС]     Перегрузка операторов ==, !=, <, > для класса "Дробь"
Да, ошибку исправил, кроме того у меня в сеттере была ошибка (правда я его не использовал) но код работает не правильно. Причем когда я прохожусь дебагером, то значения везде правильные, а условие срабатывает == вместо != и <

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;
        [B]znam[/B]= this->znam;
    }
 
    int GetChus()
    {
        return chus;
    }
 
    void SetChus(int chus)
    {
        this->chus = chus;
    }
 
    int GetZnam()
    {
        return znam;
    }
 
    void SetZnam(int [B]znam[/B])
    {
        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;
}
Добавлено через 16 минут
я уже даже вот так написал

C++
1
2
3
4
5
6
7
bool operator == (Drib& z)
    {
        double a = 0, b = 0;
        a = (double)(this->chus / this->znam);
        b = (double)(z.chus / z.znam);
        return (a == b) ? true : false;  // здесь значение a и b почему то остается 0, и поэтому срабатывает true, такое впечетление что операция / не срабатывает
    }
 
Текущее время: 17:56. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru