00001 #define TEMPLATE_CLASSES_WONT_COMPILE
00002 #include "commission.h"
00003
00004 #include "itemly.h"
00005 #include "weekly.h"
00006 #include <iostream>
00007 #include <iomanip>
00008
00009 using namespace std;
00010
00011 CommissionWorker::
00012 CommissionWorker(const char first[] ,
00013 const char last[] ,
00014 double sal_per_week ,
00015 double commission ,
00016 long quant_sold )
00017 : Employee(first, last), WeeklyWorker(first, last, sal_per_week),
00018 ItemlyWorker<long>(first, last, commission, quant_sold) { }
00019
00020 CommissionWorker::
00021 CommissionWorker(const CommissionWorker & worker)
00022 : Employee(worker), WeeklyWorker(worker), ItemlyWorker<long>(worker) { }
00023
00024 CommissionWorker::
00025 ~CommissionWorker() { }
00026
00027 CommissionWorker & CommissionWorker::
00028 operator = (const CommissionWorker & worker)
00029 {
00030 ItemlyWorker<long>::operator = (worker);
00031 WeeklyWorker::set_per_week(worker.weeklySalary);
00032 return *this;
00033 }
00034
00035 void CommissionWorker::
00036 set_commission(double commission)
00037 {
00038 ItemlyWorker<long>::set_wage_per(commission);
00039 return;
00040 }
00041
00042 double CommissionWorker::
00043 earnings(void) const
00044 {
00045 return WeeklyWorker::earnings() + ItemlyWorker<long>::earnings();
00046 }
00047
00048 void CommissionWorker::
00049 print(ostream & out) const
00050 {
00051 out << endl
00052 << setw(25) << "Commissioned Worker: ";
00053 Employee::print(out);
00054 return;
00055 }