【发布时间】:2012-12-11 22:39:35
【问题描述】:
我有一个带有 3 个实例变量的基类 Person。 人员(字符串名称,无符号长 ID,字符串电子邮件) 和一个继承 Person 的派生类 Student 并有一个新的实例 var year 学生(字符串名称,无符号长 id,int 年份,字符串电子邮件):人员(姓名,id,电子邮件) 和一位无需描述的班主任。
然后有一个名为 eClass 的类
我想重载比较运算符 == 并使用该运算符 在函数布尔存在() 当我编译我的 .cpp 我有那个错误
错误:无法在'eClass 中定义成员函数'Student::operator==' 谁能帮我解决这个问题?
我也不明白 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;
}
}
【问题讨论】:
标签: c++ compiler-errors operator-overloading comparator