template <class T> class listIterator { ListIterator (Link<T> & sl) : currentLink(sl) { } void operator ++ () { currentLink = currentLink->nextLink; } T operator * () { return currentLink->value; } bool operator == (ListIterator<T> & right) { return currentLink == right.currentLink; } private: Link<T> * currentLink; };