// Source File: Tarray.C #include #include #include "Tarray.H" template Array :: Array (int sz, int bs) : size (sz), base (bs) { cout << "In constructor\n"; ptr = new T [size + base]; if (ptr == NULL) { cout << "Memory allocation failure in Array()" << endl; exit (-1); } } template Array :: ~Array () { cout << "In destructor\n"; delete [] ptr; } template T& Array :: operator [] (int n) { return *(ptr + n + base); } template int Array :: Search (T& key) { int i; for (i = 0; i < size; ++i) { if ( (* (ptr + i + base)) == key) { return i; } } return -1; } template ostream& operator << (ostream& os, Array& a) { int i; for (i = 0; i < a.size; ++i) { os << (i + a.base) << ": " << *(a.ptr + i + a.base) << endl; } return os; } template istream& operator >> (istream& is, Array& a) { int i; for (i = 0; i < a.size; ++i) { is >> *(a.ptr + i + a.base); } return is; }