00001 #ifndef EMPLOYEE_ABSTRACT_BASE_CLASS_HEADER_INCLUDED 00002 #define EMPLOYEE_ABSTRACT_BASE_CLASS_HEADER_INCLUDED 00003 00004 #include <iostream> 00005 00006 class Employee { 00007 char *firstName; 00008 char *lastName; 00009 00010 protected: 00011 void set_first(const char first[]); 00012 void set_last(const char last[]); 00013 00014 public: 00015 Employee(const char first[] = "", const char last[] = ""); 00016 Employee(const Employee & emp); 00017 virtual ~Employee(); 00018 00019 Employee & operator = (const Employee & emp); 00020 00021 const char *get_first(void) const { return firstName; } 00022 const char *get_last(void) const { return lastName; } 00023 00024 virtual double earnings(void) const = 0; 00025 virtual void print(std::ostream & out) const; 00026 }; 00027 00028 typedef Employee *EmployeePtr; 00029 00030 #endif