Перегрузка оператора < c++ [требует правки]

273
06 октября 2017, 17:39

Здравствуйте, почему не работает перегрузка оператора < ?

#include <iostream>  
#include <conio.h>
using namespace std;  
class Date  
{  
    int kurs; 
    float rate, avarage;  
public:  
    Date(int m, float d, float y)  
    {  
        kurs = m; rate = d; avarage = y;  
    }  
    bool operator < (Date &v1)
    {
        int vTemp1 = v1.kurs;
        return vTemp1;
    }
    ~Date(){}
};  

int main()  
{  
    Date dt(35, 116, 92);
    Date dt1(70, 69, 92);
    bool k = dt1<dt;  
    if(k) cout << "dt < dt1";
    else cout << "dt > dt1";
    getch(); 
    return 0; 
}  
Answer 1

Ну так у вас он написан так, что что бы вы ни сравнивали, выведется kurs того, что справа от сравнения, приведенный к bool - т.е. true...

Если вы хотите, скажем, сравнивать по полю kurs, то напишите

bool operator < (const Date &v1) const
{
    return kurs < v1.kurs;
}
READ ALSO
Нахождение минора элемента матрицы

Нахождение минора элемента матрицы

Цикличная конструкция крива, не выводит миноры элементов матрицы уже после первогоТ

343
Использование класса ограничений

Использование класса ограничений

Задача заключается в проверке наличия у типа T функции определенного видаИспользуем класс ограничений

229
Оконное приложение(расписание поезда Qt_5) [требует правки]

Оконное приложение(расписание поезда Qt_5) [требует правки]

Нужно разработать программу, управляющую списком из двух записейРабота в Qt, нужно создать оконное приложение

219