#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.