-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathCommissionEmployee.h
More file actions
31 lines (24 loc) · 1019 Bytes
/
CommissionEmployee.h
File metadata and controls
31 lines (24 loc) · 1019 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
// Fig. 12.13: CommissionEmployee.h
// CommissionEmployee class derived from Employee.
#pragma once
#ifndef COMMISSION_H
#define COMMISSION_H
#include <string> // C++ standard string class
#include "Employee.h" // Employee class definition
class CommissionEmployee : public Employee {
public:
CommissionEmployee(const std::string&, const std::string&,
const std::string&, double = 0.0, double = 0.0);
virtual ~CommissionEmployee() = default; // virtual destructor
void setCommissionRate(double); // set commission rate
double getCommissionRate() const; // return commission rate
void setGrossSales(double); // set gross sales amount
double getGrossSales() const; // return gross sales amount
// keyword virtual signals intent to override
virtual double earnings() const override; // calculate earnings
virtual std::string toString() const override; // string representation
private:
double grossSales; // gross weekly sales
double commissionRate; // commission percentage
};
#endif // !COMMISSION_H