// MT4Q2aMin.cpp - Array class with iterator #include #include template class Array { public: typedef T* iterator; Array() {} int size() const { return Size; } T& operator[](int n) { if(n<0 || Size<=n) throw std::exception("index out of range"); return _array[n]; } T operator[](int n) const { if(n<0 || Size<=n) throw std::exception("index out of range"); return _array[n]; } iterator begin() { return &_array[0]; } iterator end() { return &_array[Size]; } private: Array(const Array&); Array& operator=(const Array&); T _array[Size]; }; template void display(Cont& c) { Cont::iterator iter, last = c.end(); last = --last; std::cout << "\n "; for(iter = c.begin(); iter != last; ++iter) std::cout << *iter << ", "; std::cout << *last << "\n"; } int main() { std::string temp1[] = { "aardvark", "armadillo", "koala", "platypus", "vole" }; Array arr; for(int i=0; i<5; ++i) arr[i] = temp1[i];; display(arr); std::cout << "\n"; }