#ifndef IAGGREGATE_H #define IAGGREGATE_H ///////////////////////////////////////////////////////////////////// // IAggregate.h - Container Interface for Iterator Skeleton Demo // // // // Jim Fawcett, CSE776 - Design Patterns, Summer 2009 // ///////////////////////////////////////////////////////////////////// #include "IIterator.h" template class IAggregate { public: virtual IIterator& CreateIterator()=0; virtual ~IAggregate() {}; virtual T& operator[](size_t n)=0; virtual T operator[](size_t n) const=0; virtual size_t Size() const=0; virtual void Append(const T& t)=0; virtual void Insert(IIterator& iter, const T& t)=0; virtual void Remove(IIterator& iter)=0; }; #endif