#include #include #include #include using namespace std; template class Array { private: int size; T *data; public: Array(int s){ size = s ; // data = new T[s]; data = new T[s]; } T &operator [] (int i) { if (i<0 || i >= size) { cerr << endl << "Out of range" << endl; exit(EXIT_FAILURE); } else return data[i]; } virtual ~Array() { delete[] data; cout << "destructor invoke!" << endl; } }; int main() { Array arr(5); arr[0] = 1; arr[1] = arr[0] + 6; cout << arr[1] << endl; // arr[100] = 3; // err occur Array s(5); s[0] = "hello"; s[1] = "world"; cout << s[1] << endl; return 0; }