A generic safe array example : generic array « template « C++ Tutorial






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

const int SIZE = 10;

template <class T> class MyType {
  T a[SIZE];
public:
  MyType() {
    register int i;
    for(i=0; i<SIZE; i++) a[i] = i;
  }
  T &operator[](int i){

      if(i<0 || i> SIZE-1) {
        cout << "\nIndex value of ";
        cout << i << " is out-of-bounds.\n";
        exit(1);
      }
      return a[i];

  }
};

int main()
{
  MyType<int> intob;
  MyType<double> doubleob;

  cout << "Integer array: ";
  for(int i=0; i<SIZE; i++)
     intob[i] = i;
  for(int i=0; i<SIZE; i++)
     cout << intob[i] << "  ";
  cout << '\n';

  cout << "Double array: ";
  for(int i=0; i<SIZE; i++)
     doubleob[i] = (double) i/3;
  for(int i=0; i<SIZE; i++)
     cout << doubleob[i] << "  ";
  cout << '\n';

  intob[12] = 100;

  return 0;
}
Integer array: 0  1  2  3  4  5  6  7  8  9
Double array: 0  0.333333  0.666667  1  1.33333  1.66667  2  2.33333  2.66667  3

Index value of 12 is out-of-bounds.








13.11.generic array
13.11.1.Define your own generic array
13.11.2.A generic safe array example