Таким образом, весь смысл моей программы заключается в том, чтобы прочитать входные данные из файла и выполнить некоторые вычисления, а затем вывести результаты в файл. В этом участвует несколько файлов, но для простоты я просто включу два файла реализации для моей программы. Файл реализации «employee» является базовым классом, а файл «merit» — производным классом.
Теперь для вывода я должен получить его в формате: ID --- Зарплата
Я получаю правильный результат для зарплаты, но я получаю неправильные цифры для ID. Я знаю, что это связано с тем, что в функции Merit::print() печатается [merit::ID], а не [employee::ID].
Есть ли способ заставить его распечатать employee::ID, а не заслугу::ID?
Ниже приведен файл базового класса (файл сотрудника):
#include <iostream>
#include <fstream>
#include <iomanip>
#include "employee.h"
#include "merit.h"
using namespace std;
// The definition of the members functions of the class employee goes here.
void employee::readData(ifstream& inf)
{
inf >> ID >> Job_class >> Years >> Ed;
}
void employee::print(ofstream& outf) const
{
outf << ID << setw(15) << fixed << showpoint << setprecision(2) << "$ " << sal << endl;
}
Следующий файл является файлом производного класса (файл заслуг):
void merit::readData(ifstream& inf)
{
employee::readData(inf);
inf >> mer;
}
void merit::print(ofstream& outf) const
{
outf << ID << setw(15) << fixed << showpoint << setprecision(2) << "$ " << salary << endl;
}