Listing 12 (th_long.hpp)

//
//  class LongThing -- a long thing derived from
//  class Thing.
//
//  Version 1.01  -- 2/25/91
//
//  Michael Kelly -- Author
//
#if !defined (TH_LONG_HPP)
#define TH_LONG_HPP

#include "thing.hpp"

class LongThing : public Thing  {

  public:

    LongThing ()
    {
   thing = new long(0L);
    }
    LongThing( long &some_thing )
    {
   thing = new long(some_thing);
    }

    long type()
    {
   return ( (long)LongType << 16) | sizeof(long);
    }

    operator long() { return *( (long *)ptr() ); }

    void print();
    int printable() { return 1; }
    int sortable()  { return 1; }

    operator ==(Thing &some_thing);
    operator !=(Thing &some_thing);
    operator < (Thing &some_thing);
    operator <=(Thing &some_thing);
    operator > (Thing &some_thing);
    operator >=(Thing &some_thing);
};

#endif

// End of File