#ifndef __ARRAY_H__ #define __ARRAY_H__ #include #include #include template class Array { T array[size]; public: Array(); Array(const Array& a); void set(T e, int index); T get(int index) const; void rmv(int index); Array& operator=(Array& a); T& operator[](int index); template friend std::ostream &operator<<(std::ostream& out, const Array& t); }; template Array::Array() { // empty } template Array::Array(const Array& a) { for(int i=0; i void Array::set(T e, int index) { assert(index>=0 && index T Array::get(int index) const { assert(index>=0 && index void Array::rmv(int index) { assert(index>=0 && index Array& Array::operator=(Array& a) { for(int i=0; i T& Array::operator[](int index) { assert(index>=0 && index std::ostream &operator<<(std::ostream& out, const Array& t) { for(int i=0; i