У меня есть базовый класс Person с 3 экземплярами vars. Person (строковое имя, длинный беззнаковый идентификатор, строковый адрес электронной почты) и один производный класс Student, который наследует Person и имеет один новый экземпляр var year Student (строковое имя, беззнаковый длинный идентификатор, int year, строковый адрес электронной почты): Person (name, id, email ) и один классный учитель, описывать который не нужно.
Затем создайте класс с именем eClass
и я хочу перегрузить оператор сравнения == и использовать этот оператор в функции bool exists (), когда я компилирую свой .cpp, у меня есть эта ошибка
ошибка: невозможно определить функцию-член 'Student :: operator ==' в'eClass. Кто-нибудь может мне с этим помочь?
Также я не понимаю const
в этой функции моего кода. что делать?
bool Student :: operator == (const Student * & scnd) const {... ... ...}
eClass{
private:
Teacher* teacher;
string eclass_name;
Student* students[MAX_CLASS_SIZE];
unsigned int student_count;
public:
eClass(Teacher* teach, string eclsnm){
teacher=teach;
eclass_name=eclsnm;
}
bool Student::operator==(const Student* &scnd)const{
return(getID==scnd.getID
&&getName==scnd.getName
&&getYear==scnd.getYear
&&getEmail==scnd.getEmail);
}
bool exists(Student* stud){
for(int i=0; i<MAX_CLASS_SIZE;++i){
if(stud==students[i]){return TRUE;}
}
return FALSE;
}
}