Implementation: Internal (“Passive”) Iterators
typedef bool (*FUNCPTR)(Item);
class Iterator { ...
Iterator(List* list);
bool Traverse(FUNCPTR fp);
... }
Iterator i(pList);
i->Traverse(ProcessItem);