// File: IntArray.cpp // // Implementation of the IntArray class. #include #include #include "IntArray.h" using namespace std ; // Constructor // IntArray::IntArray(unsigned int n /* = 0 */) { size = n ; if (n == 0) { A = NULL ; return ; } A = new int[n] ; if (A == NULL) { cerr << "Out of memory in IntArray constructor" << endl ; exit(1) ; } } // Destructor // IntArray::~IntArray() { delete [] A ; } // Copy Constructor IntArray::IntArray(const IntArray &B) { size = B.size ; A = new int[size] ; if (A == NULL) { cerr << "Out of memory in IntArray constructor" << endl ; exit(1) ; } for(unsigned int i=0 ; i < size ; ++i) { A[i] = B.A[i] ; } } // Assignment // IntArray& IntArray::operator=(const IntArray& B) { if (this == &B) return *this ; delete [] A ; size = B.size ; A = new int[size] ; if (A == NULL) { cerr << "Out of memory in IntArray constructor" << endl ; exit(1) ; } for (unsigned int i=0 ; i < size ; i++) { A[i] = B.A[i] ; } return *this ; } // Print the array // void IntArray::print() { cout << "integer array [" << size << "]\n" ; for (unsigned int i = 0 ; i < size ; i++) { cout << "A[" << i << "] = " << A[i] << endl ; } cout << "\n" ; } int& IntArray::operator[] (unsigned int i) { if( (i < 0) || (i >= size)) { cout << "Out of bounds error.\n" ; exit(1) ; } return A[i] ; } void IntArray::swap(unsigned int i, unsigned int j) { int temp ; if (i < 0 || i >= size || j < 0 || j >= size) { cout << "array index out of bounds " << i << " or " << j <<"\n" ; exit(1) ; } temp = A[i] ; A[i] = A[j]; A[j] = temp ; } int IntArray::cmp(unsigned int i, unsigned int j) { if (i < 0 || i >= size || j < 0 || j >= size) { cout << "array index out of bounds " << i << " or " << j <<"\n" ; exit(1) ; } if (A[i] < A[j]) return -1 ; if (A[i] == A[j]) return 0 ; return 1 ; }