/*********************************************************************
example 5 - safearray.h
    replace access() with operator[]
*********************************************************************/
#include <iostream>
using namespace std;
#include <process.h> //for the exit() function

const int maxsize = 100;

//class definition
class safearray {
    private:
        int array[maxsize];
    public:
        int& operator[](const int& pos) {
            if ((pos < 0) || (pos >= maxsize)) {
                cerr << endl << "Index out of bounds" << endl;
                exit(1);
            }
            return array[pos];
        }

        const int& operator[](const int& pos) const {
            if ((pos < 0) || (pos >= maxsize)) {
                cerr << endl << "Index out of bounds" << endl;
                exit(1);
            }
            return array[pos];
        }

};