Listing 7 (paylist. h) Concrete List Class for a Payroll List

//////////////////////////////////////////////////
//  By David Brumbaugh
//////////////////////////////////////////////////

#ifndef PAYLIST_H
#define PAYLIST_H
#include "pinclas.h"

struct employee
{
   char last[21], first[11];
   double pay_rate;  // Dollars per day
   long days_worked;
   // Days worked in this pay period.
};

class PayList: public Pfm_List {
protected:
   employee empBuffer;

public:
// Constructors
  PayList():Pfm_List("payroll.db","Employees")
  {default_key = DB_Column(table,"LastFirst"); }
  PayList(DB &open_db):PfmList(open_db, "Employees")
  {default_key = DB_Column(table,"LastFirst");}
  PayList(DB &open_db, DBTAB &db_table):
  Pfm_List(open_db, db_table)
  {default_key = DB_Column(table,"LastFirst");}

// List Navigation
   virtual Boolean find (char *last),
                find(char *last, char *first);
   virtual Boolean find(void *key)
   {return (find( (char *) key));}

// List Interface
   virtual void add(employee &emp);
   virtual void replace(employee &emp);
   virtual void get(employee &emp);
   virtual void *current()
   { get(empBuffer); return (void *) &empBuffer;}

};
#endif