class Link { public: Link ( Link* pNext ) : _pNext(pNext) {} Link* Next () const { return _pNext; } private: Link* _pNext; }; class List { public: int cu; List (): _pHead (0), cu(0) {} // ~List (); //void Add (); //const Link * Get(); const Link* GetHead () const { return _pHead; } //protected: Link* _pHead; ~List () { //cout<Next(); // unlink pLink //cout< class TList : public List { public: void Add() { //T* pLink = new T ( _pHead ); Link* pLink = new T ( _pHead ); _pHead = pLink; } T * Get() { return (T*)List::Get();} TList() : List() {} };