00001 #define TEMPLATE_CLASSES_WONT_COMPILE 00002 #include "hourly.h" 00003 00004 #include "itemly.h" 00005 #include <iostream> 00006 00007 using namespace std; 00008 00009 HourlyWorker::HourlyWorker(const char first[] /* = "" */, 00010 const char last[] /* = "" */, 00011 double wage_per /* = 0.0 */, 00012 double hours /* = 0.0 */) 00013 : Employee(first, last), 00014 ItemlyWorker<double>(first, last, wage_per, hours) { } 00015 00016 HourlyWorker::HourlyWorker(const HourlyWorker & worker) 00017 : Employee(worker), ItemlyWorker<double>(worker) { } 00018 00019 HourlyWorker::~HourlyWorker() { } 00020 00021 HourlyWorker & HourlyWorker::operator = (const HourlyWorker & worker) 00022 { 00023 ItemlyWorker<double>::operator = (worker); 00024 return *this; 00025 } 00026 00027 double HourlyWorker::earnings(void) const 00028 { 00029 return wage_per_item * (item_quantity > 40 ? 40 + (item_quantity-40)*1.5 00030 : item_quantity); 00031 } 00032 00033 void HourlyWorker::print(ostream & out) const 00034 { 00035 out << endl 00036 << setw(25) << "Hourly Worker: "; 00037 Employee::print(out); 00038 return; 00039 }