Mega Code Archive

 
Categories / C++ / Language
 

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; }