Listing 1 Declaration of Field class

class Field {
   char *name;
   int   offset;
public:
   virtual ~Field() {}

   Field( char *name, int offset )
      :name( name ), offset( offset ) {}

   const char *getName()   { return name; }
   const int   getOffset() { return offset; }
   
   virtual const char *getTypeName ()                             = 0;
   virtual char       *toString    ( char *string, void *data )   = 0;
   virtual void        fromString  ( void *data,   char *string ) = 0;
   virtual void        assign      ( void *dest,  void *srce )    = 0;
   virtual int         compare     ( void *lhs,  void *rhs )      = 0;
};

/* End of File */