home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / cset21v1.zip / IBMCPP / SAMPLES / BROWSER / PAYCLASS.H next >
C/C++ Source or Header  |  1993-04-30  |  4KB  |  150 lines

  1. /* @(#)26    1.3  src/samples/payclass.h, samples, brs110, 930429 92/11/20 22:04:16 */
  2. /******************************************************
  3. *** payclass.h -- class definitions for payroll.cpp *** 
  4. ******************************************************/
  5.  
  6. // Abstract base class definition
  7.  
  8. class employee          // Declare a virtual base 
  9.             // class named employee.
  10. {
  11.   protected:
  12.   char * name;
  13.   int employee_id;
  14.  
  15.   public:
  16. // Constructors for class employee.
  17.   employee(){/* required for multiple inheritance
  18.         of virtual base class.*/;};
  19.   employee(char * n, int id);
  20.  
  21. // Declare pure virtual functions:
  22.   virtual void print() = 0;
  23.   virtual void position() = 0;
  24.   virtual double pay() = 0;
  25.  
  26. };                  // End of employee class definition.
  27.  
  28. // Derived class definitions.  
  29.  
  30. // Declare a class named manager
  31. // derived from the employee class.
  32.  
  33. class manager : virtual public employee
  34. {
  35.   private:
  36.   double salary;       // Declare a variable of type double
  37.                           // private to this class.
  38.   public:
  39. // Constructor for class manager.
  40.   manager(char *n, int id, double sal);
  41.  
  42. // pay function for class manager.
  43.   double pay();
  44.  
  45. // print function for class manager.
  46.   void print();
  47.  
  48. // position function for class manger.
  49.    void position()            //Defined inline within
  50.                               // the class definition.
  51.   {
  52.       cout << name << " is a manager.\n";
  53.   };
  54.  
  55. };                     // End of manager class definition.
  56.  
  57. // Another derived class definition.
  58.  
  59. // Declare a class named regular_emp,
  60. // derived from class employee.
  61. class regular_emp : virtual public employee
  62. {
  63.   private:
  64.   double wage, hours;   // Declare two variables of type 
  65.                        // double, private to this class.
  66.   public:
  67. // Constructor
  68.   regular_emp(char *n, int id, double wg, double hrs) ;
  69.  
  70. // pay function
  71.   double pay();
  72.  
  73. // print function for class regular_emp.
  74.   void print();
  75.  
  76. // position function for regular_emp.
  77.   void position()            // Defined inline within
  78.                              // the class definition.
  79.   {
  80.      cout << name << " is a regular employee.\n";
  81.   };
  82.  
  83. };                 // End of regular_emp class definition.
  84.  
  85. // Another derived class definition 
  86.  
  87. // Declare a class named sales_person,
  88. // derived from class employee.
  89. class sales_person : virtual public employee
  90. {
  91.   private:
  92.   double commission;              
  93.   int units;             
  94.   public:
  95. // Constructor
  96.   sales_person(char *n, int id,
  97.            double com, double nts);
  98.  
  99. // pay function
  100.   double pay();
  101.  
  102. // print function for class sales_person.
  103.   void print();
  104.  
  105. // position function for sales_person.
  106.   void position()         //Defined inline within
  107.                           // the class definition.
  108.   {
  109.      cout << name << " is a sales person.\n";
  110.   };
  111.  
  112. };              // End of sales_person class definition.
  113.  
  114.  
  115. // A definition of a class with multiple inheritance
  116. // (inherits functions from manager and sales_person).
  117.  
  118. // Declare a class named sales_mgr derived from
  119. // the manager and sales_person classes.
  120.  
  121. class sales_mgr : public manager, public sales_person
  122. {
  123.   private:
  124.   double salary, commission;
  125.   int units;
  126.  
  127.   public:
  128. // Constructors
  129.  
  130.   sales_mgr(char *n, int id, double sal,
  131.                double comm, double nts);
  132.  
  133. // pay function
  134.   double pay();
  135.  
  136. // print function for class sales_mgr.
  137.   void print();
  138.  
  139. // position function for sales_mgr.
  140.   void position()        // Defined inline within
  141.                          // the class definition.
  142.   {
  143.      cout << name << " is a sales manager.\n";
  144.   };
  145.  
  146. };              // End of sales_mgr class definition.
  147.  
  148.  
  149. /***** End of comp_class.h (class definitions) ****/
  150.