Exceptions w/ Classes (version2)
struct bad_index {          //bad index exception type
  long index;
};
class dyn_a1 {
  public:
    explicit dyn_a1(INDEX) throw(bad_alloc); //constructor
    ~dyn_a1() throw();                       //destructor
    int &operator[](INDEX) throw(bad_index); //subscript op
  private:
    dyn_a1(const dyn_a1 &);            //prohibit copy constructor
    dyn_a1 &operator=(const dyn_a1 &); //prohibit assign
    INDEX d1;               //# of elements in 1D array
    int* a0;                //base address of all elements
};