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