Я изучаю виртуальные функции в классе, и у меня возникают проблемы с этим. Я должен написать 2 класса. Первый класс, который является базовым классом, называется Employee
и содержит следующую информацию:
empName (строка)
empNum (строка)
hireDate ( int, только год, когда сотрудник был принят на работу)
Второй класс называется ProductionWorker
, и он является общедоступным из базового класса Employee
.
часов (int)
payRate (double)
totalPay (double) (hours * payRate)
Мне нужно создать виртуальную функцию для отображения атрибуты каждого класса. Я запутался в том, как использовать виртуальные функции. Могу ли я сделать это, как в примере ниже? Функции get
просто возвращают значение переменной-члена.
//Base class with virtual function
class Employee {
public:
virtual void display () {
cout << getEmpName() << endl;
cout << getEmpNum() << endl;
cout << getHireDate() << endl;
};
И тогда в производном классе будет
//derived class
class ProductionWorker : public Employee {
public:
void display() {
cout << getHours() << endl;
cout << getPayRate() << endl;
cout << getTotalPay(hours, payRate) << endl;
}
Поэтому, когда я вызываю виртуальную функцию display
из базового класса Employee
он должен вывести значения empName, empNum и hireDate. Затем, когда я вызываю функцию display
из производного класса ProductionWorker
, она должна вывести значения часов, payRate и totalPay.
Я правильно понял? Я прошу прощения за любую путаницу. Я знаком с новыми виртуальными функциями.