template<class AType> class TInstanceOf : public TPointerTo<AType>{ public: TInstanceOf(AType* adopt = NIL); TInstanceOf(const TInstanceOf<AType>& copy); TInstanceOf(const TInstanceOf<AType>& copy, TMemoryHeap& into); ~TInstanceOf(); TInstanceOf&operator=(AType* adopt); TInstanceOf&operator=(const TInstanceOf<AType>& copy); AType*Orphan(); Boolean operator== (const TInstanceOf<AType>&); Boolean operator!= (const TInstanceOf<AType>&); Boolean operator== (const AType*) const; Boolean operator!= (const AType*) const; }; template<class AType> Boolean operator== (const AType* l, const TInstanceOf<AType>& r); template<class AType> Boolean operator!= (const AType* l, const TInstanceOf<AType>& r); template<class AType> void Resurrect (TInstanceOf<AType>& p, TStream& from); template<class AType> void Resurrect (TInstanceOf<AType>& p, TStream& from, TMemoryHeap& heap); template<class AType> void Resurrect (TInstanceOf<AType>& p, TStream& from, EHeapType t, const void* o);