我正在为我在C的学校做一个项目
我有2节课:Employe和Teacher.
源自Employe的老师,其职能已被覆盖.
我们覆盖运算符
对于Employe,是5,对于Teacher,是20.
当我在main.cpp中创建教师时,我调用了operator
ostream& operator<
os << (pTeacher);
return os;
}
但是,该函数使用“ os
os << "Name: " << pEmploye.name_ << endl;
os << "Class: " << pEmploye.getClass() << endl;
os << "LevelAcces: " << pEmploye.getLevelAccess() << endl;
return os;
}
我试图将我的老师放到Employe中,但是当它显示消息时,LevelAcces是5(我想是20,因为我的Employe是一位老师).
我还尝试使用Employe :: operator
cout << Garry << endl;
Employe.cpp:
#include "Employe.h"
using namespace std;
Employe::Employe(){
name_ = "";
}
Employe::Employe(string pName){
name_ = pName;
}
string Employe::getName() const{
return name_;
}
unsigned int Employe::getLevelAccess() const{
return levelAccess_;
}
string Employe::getClass() const{
return typeid(*this).name();
}
ostream& operator<
os << "Name: " << pEmploye.name_ << endl;
os << "Class: " << pEmploye.getClass() << endl;
os << "LevelAcces: " << pEmploye.getLevelAccess() << endl;
return os;
}
在Employe.h中:
private:
static const unsigned int LevelAccess_ = 5;
Teacher.cpp:
#include "teacher.h"
using namespace std;
Teacher::Teacher(string pName){
nom_ = pName;
}
unsigned int Teacher::getLevelAccess() const{
return(Employe::getLevelAccess() + accessTeacher_);
}
string Teacher::getClass() const{
return typeid(*this).name();
}
ostream& operator<
os << (pTeacher);
return os;
}
这是Teacher.h:
static const unsigned int accesTeacher_ = 15;