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