У меня есть базовый класс Employee и производный класс, называемый EmployeeMerit. Класс Employee считывает данные из входного текстового файла и устанавливает идентификаторы переменных, JobClass, Years и ED для входных значений.В C++, как установить приватную переменную в производном классе на входное значение из базового класса?
Класс EmployeeMerit должен добавить дополнительную переменную, называемую MeritRank, и установить ее на дополнительное входное значение (уже содержащееся в файле) из входного файла. Если MeritRank установлен в 3, тогда заработная плата должна увеличиться на 50 долларов. Переменная зарплата - это защищенный член, что означает, что он используется обоими классами.
У меня есть MeritRank в классе EmployeeMerit, заданном как частный член. Класс 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++. –