Я попытался перегрузить operator <
для сортировки номеров по цене.Не удалось найти ошибку в операторе перегрузки <
Вот соответствующая часть моего кода:
class Room{
protected:
int roomNo;
int category;
Client client;
public:
Room();
Room(int no, int cat, Client cl);
void printData();
int charge();
Room operator < (Room &r1);
};
Room Room::operator < (Room &r1){
if(this->charge() < r1.charge()){
return r1;
}
else{
return *this;
}
}
Но компилятор дает мне следующую ошибку, когда я пытаюсь использовать operator<
:
main.cpp:(.text+0x2d8): undefined reference to `Room::operator<(Room const&)'
main.cpp:(.text+0x2ff): undefined reference to `Room::operator<(Room const&)'
[Error] ld returned 1 exit status
Makefile.win recipe for target 'Ask01.exe' failed
Почему не код скомпилировать?
См. Http://stackoverflow.com/questions/4421706/operator-overloading?rq=1, ваша сигнатура функции неверна. Подсказка: ошибка говорит вам, что это должно быть – EdChum
Не должно быть 'Room & Room :: operator <(const Room & r1)'? – trojanfoe
Whet Я попробовал, чтобы у меня было это: «39 \t 7 [Ошибка] прототип для« Room & Room :: operator <(Room &) »не соответствует ни одному классу« Комната » – Sini