Generic Programming with Inheritance and Templates
void print_all(AbstractAggregate* items)
{
AbstractIterator* iter = items->create_iterator();
while (!iter->is_done())
{
cout << iter->current_item() << "\n";
iter->next();
}
}