/*********************************************************************
safearray.h
    redo of Practical 8
*********************************************************************/
#include <iostream>
using namespace std;
#include <process.h> //for the exit() function

class item {
    public:
        int part;
        string desc;
        float price;
};



//class definition
class safearray {
    public:
        enum { maxsize = 100 }; //replaces const int maxsize = 100;

    private:
        item array[maxsize];
        int used;

    public:
        safearray() {
            used = 0;
        }

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

            return array[pos];
        }

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

};