ok this is an abridged version of what i've got:
as you can see, this is a doubly linked-list template class. My question is how can I implement an Iterator in a List member function?Code:template <typename T> class List { public: ... class Iterator; private: class Node; Node *head, *tail; }; template <typename T> class List<T>::Node { public: ... private: T data; Node *next, *prev; }; template <typename T> class List<T>::Iterator { public: Iterator(Node* n) : node(n) {} ~Iterator() {} Iterator& operator++() { if (node != NULL) { node = node->next; } return(*this); } Iterator& operator++(int) { Iterator i(*this); ++(*this); return(i); } private: Node *node; };
For example, if I have display() function, how do I use an Iterator for list traversal?