Dynamic int array
#include <iostream> #include <cstdlib> using namespace std; class DynamicIntArray { int *p; int size; public: DynamicIntArray(int s); DynamicIntArray &operator=(DynamicIntArray &ob); int &operator[](int i); }; DynamicIntArray::DynamicIntArray(int s) { p = new int [s]; if(!p) { cout << "Allocation error\n"; exit(1); } size = s; } // Overload = DynamicIntArray &DynamicIntArray::operator=(DynamicIntArray &ob) { int i; if(size!=ob.size) { cout << "Cannot copy arrays of differing sizes!\n"; exit(1); } for(i = 0; i <size; i++) p[ i ] = ob.p[ i ]; return *this; } // Overload [] int &DynamicIntArray::operator[](int i) { if(i <0 || i>size) { cout << "\nIndex value of "; cout << i << " is out-of-bounds.\n"; exit(1); } return p[ i ]; } int main() { int i; DynamicIntArray object1(10), object2(10), object3(100); object1[3] = 10; i = object1[3]; cout << i << endl; object2 = object1; i = object2[3]; cout << i << endl; // generates an error object1 = object3; // arrays differ sizes return 0; }