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