ok this is an abridged version of what i've got:
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;
};
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?
For example, if I have display() function, how do I use an Iterator for list traversal?