我有一个具有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