Listing 1 (refitem.hpp)

// refitem.hpp
// declaration of RefCntItem -
// a RefCntPtr must point to
// a class derived from this one,
// or to a class that implements
// the same functions

#ifndef CLASS_RefCntItem
 #define CLASS_RefCntItem

 class RefCntItem
  {
   private:
    unsigned int p_refCnt;
   public:
    RefCntItem (void)
      : p_refCnt(0)
      {};
    void incRefCnt (void)
      { ++p_refCnt;};
    void decRefCnt (void)
      { --p_refCnt;};
    unsigned int refCnt (void)
      { return p_refCnt;};
    virtual ~RefCntItem (void) {};
  };

#endif

// End of File