我有一个名为Employee的基类和一个名为EmployeeMerit的派生类。 Employee类从输入文本文件中读取数据,并将变量ID,JobClass,Years和ED设置为输入值。在C++中,如何将派生类中的私有变量设置为基类中的输入值?
EmployeeMerit类应添加一个名为MeritRank的附加变量,并将其设置为输入文件中的其他输入值(已包含在文件中)。如果MeritRank设置为3,那么薪水应该增加50美元。变量工资是一个受保护的成员,这意味着它被两个类使用。
我将EmployeeMerit类中的MeritRank设置为私有成员。 Employee类具有根据输入文件设置变量的readData函数。
像这样:
void Employee::readData(ifstream& inf){
inf >> ID >> Job_class >> Years >> Ed;
}
使用MeritRank是在EmployeeMerit类私有的,我怎么变量设置为下一个输入?这就是我的想法。但是,当我运行该程序时,MeritRank不会改变价值。请记住,我不能使用朋友类或公共变量。
void EmployeeMerit::addToSalary(ifstream& inf) {
employee::readData(inf); //Base class function
inf >> MeritRank; //MeritRank is supposed to be set to next input #
if (MeritRank == 3) {
sal = sal + 50.0;
}
}
使用调试器一次一行地执行代码。检查输入流并确保它不是由于解析失败而导致的错误状态,这会导致'>>'运算符失败。了解如何使用调试器。了解如何使用调试器是每个C++开发人员的必备技能。 –