int main()
{
    ConcreteAggregate *a = new ConcreteAggregate();
    a->addItem(5);
    a->addItem(4);
    a->addItem(3);
    a->addItem(2);
    a->addItem(1);


    Iterator *i = a->createIterator();
    while (!i->isDone())
    {
        cout << i->next() << endl;
    }

    return 0;
}