//arraytp.h -- Array Template #ifndef ARRAYTP_H_ #define ARRAYTP_H_ #include #include template class ArrayTP { private: T ar[n]; public: ArrayTP() {}; explicit ArrayTP(const T & v); virtual T & operator[](int i); virtual T operator[](int i) const; }; template ArrayTP::ArrayTP(const T & v) { for (int i = 0; i < n; i++) ar[i] = v; } template T & ArrayTP::operator[](int i) { if (i < 0 || i >= n) { std::cerr << "Error in array limits: " << i << " is out of range\n"; std::exit(EXIT_FAILURE); } return ar[i]; } template T ArrayTP::operator[](int i) const { if (i < 0 || i >= n) { std::cerr << "Error in array limits: " << i << " is out of range\n"; std::exit(EXIT_FAILURE); } return ar[i]; } #endif