我有一個具有3個實例變量的基類Person。 學生(字符串名稱,unsigned long id,int year,字符串email) 和一個繼承Person 且具有一個新實例var年的派生類Student :Person(name ,身份證號碼,電子郵件) 和一個不需要描述的班級老師。重載比較運算符== C++
然後,有一個名爲的eclass
,我希望過載比較操作符==並使用該運營商 在功能上存在布爾() 當我編譯我的.cpp我有錯誤
類錯誤:無法定義成員函數'Student :: operator =='in'eClass 任何人都可以幫助我嗎?
此外,我不明白常量
在我的代碼的功能。那是做什麼的?
布爾學生::運算符==(const的學生* & SCND)常量 {... ... ...}
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;
}
}
這不是正確的'const'。這意味着作爲'this'傳入的對象不會被修改,除了它的'mutable'成員,它仍然可以。 – chris
另外,運算符是C++中的保留字 – imulsion