почему у меня эта ошибка при перегрузке оператора?

#c

#c

Вопрос:

я хочу определить оператор для сортировки вектора объектов «esame», но у меня эта ошибка:

/* esame.cpp: 46:6: ошибка: прототип для ‘bool esame::operator<(esame amp;) const’ не соответствует ни одному из классов ‘esame’ bool esame ::operator<(esame amp; exam) const ^ ~~~~ В файле, включенном из esame.cpp: 1: 0: */ esame.h: 20: 10: ошибка: кандидатом является: bool esame ::operator<(const esame amp;) константа

      bool operator<(const esame amp;) const

    //this is the declaration on the header file:

    bool operator<(const esame amp;) const;





    //this is implementation on the cpp file:

    bool esame::operator<(esame amp;exam) const
    {
        if (this->getNome() < exam.getNome()){
            return true;
        } else{
            return false;
        }  
    }
  

Комментарии:

1. Не связано с ошибкой, но результатом this->getNome() < exam.getNome() уже является bool . Вам не нужен if

Ответ №1:

Подписи разные. Добавить const к esame amp;exam в реализации.