Safe array class : Your array « Data Types « C++ Tutorial






#include <iostream>
#include <new>
#include <cstdlib>
using namespace std;

class array {
  int *p;
  int size;
public:
  array(int sz) {
    try {
      p = new int[sz];
    } catch (bad_alloc xa) {
      cout << "Allocation Failure\n";
      exit(EXIT_FAILURE);
    }
    size = sz;
  }
  ~array() { delete [] p; }

    // Copy Constructor
    array(const array &a) {
      int i;

      try {
        p = new int[a.size];
      } catch (bad_alloc xa) {
        cout << "Allocation Failure\n";
        exit(EXIT_FAILURE);
      }
      for(i=0; i<a.size; i++) p[i] = a.p[i];
    }


  void put(int i, int j) {
    if(i>=0 && i<size) p[i] = j;
  }
  int get(int i) {
    return p[i];
  }
};


int main()
{
  array num(10);

  for(int i=0; i<10; i++)
     num.put(i, i);
  for(int i=9; i>=0; i--)
     cout << num.get(i);
  cout << "\n";

  array x(num); // invokes copy constructor
  for(int i=0; i<10; i++)
     cout << x.get(i);

  return 0;
}
9876543210
0123456789"








2.37.Your array
2.37.1.Define your own array class
2.37.2.Safe array class
2.37.3.SArray
2.37.4.creates a safe array class.