#ifndef OU_LINK_H #define OU_LINK_H #include template class OULink { template friend class OULinkedList; template friend class OULinkedListEnumerator; private: T* data = NULL; // pointer to data item of any type OULink* next = NULL; // pointer to next link public: OULink(const T* item); virtual ~OULink(); }; template OULink::OULink(const T* item) { data = new T(*item); next = NULL; } template OULink::~OULink() { delete data; } #endif // !OU_LINK_H