/////////////////////////////////////////////////////////////////////// // Aggregate.cpp - Test stub for Aggregate in Iterator Skeleton Demo // // // // Jim Fawcett, CSE776 - Design Patterns, Summer 2009 // /////////////////////////////////////////////////////////////////////// #include "Iterator.h" #include "Aggregate.h" #ifdef TEST_AGGREGATE void main() { std::cout << "\n Testing ConcreteAggregate"; std::cout << "\n ===========================\n"; try { ConcreteAggregate aggInt1; aggInt1.Append(0); aggInt1.Append(1); aggInt1.Append(2); aggInt1.Append(3); aggInt1.Append(2); aggInt1.Append(1); Show("original", aggInt1); ConcreteAggregate aggInt2 = aggInt1; Show("copy", aggInt2); aggInt2[3] = 17; Show("modified through index", aggInt2); aggInt1 = aggInt2; Show("assigned ConcreteAggregate", aggInt1); IIterator& iter = aggInt1.CreateIterator(); aggInt1.Insert(iter.Next(),22); Show("inserted value", aggInt1); aggInt1.Remove(iter.Next()); Show("removed after the insert", aggInt1); iter.Release(); } catch(std::exception& ex) { std::cout << "\n " << ex.what() << "\n\n"; } std::cout << "\n\n"; } #endif