#include <iostream>
#include <stdlib.h>
using namespace std;
const int SIZE = 10;
template <class T> class MyClass {
T a[SIZE];
public:
MyClass(void)
{
int i;
for(i=0; i<SIZE; i++)
a[i] = i;
}
T &operator[](int i);
};
template <class T> T &MyClass<T>::operator[](int i)
{
if(i<0 || i> SIZE-1)
{
cout << endl << "Index value of ";
cout << i << " is out of bounds." << endl;
}
return a[i];
}
int main(void)
{
MyClass<int> int_array;
MyClass<double> double_array;
int i;
cout << "Integer array: ";
for(i=0; i<SIZE; i++)
int_array[i] = i;
for(i=0; i<SIZE; i++)
cout << int_array[i] << " ";
cout << endl;
cout << "Double array: ";
cout.precision(2);
for(i=0; i<SIZE; i++)
double_array[i] = (double)i/3;
for(i=0; i<SIZE; i++)
cout << double_array[i] << " ";
cout << endl;
int_array[12] = 100; // Calls overloaded array operator
}
|