// LONG.CPP - LongArray class implementation #include "long.h" LongArray::LongArray( unsigned sz, long defval ) { size = sz; data = new long[size]; Init( defval ); } LongArray::LongArray( const LongArray & L ) { size = L.size; initv = L.initv; data = new long[size]; for(unsigned i = 0; i < size; i++) data[i] = L.data[i]; } LongArray::~LongArray() { delete [] data; } long LongArray::Get( unsigned i ) const { assert( i < size ); return data[i]; } unsigned LongArray::GetSize() const { return size; } void LongArray::GrowBy( unsigned growBy ) { unsigned tsize = size + growBy; long * temp = new long[tsize]; // Copy the existing data. unsigned i; for(i = 0; i < size; i++) temp[i] = data[i]; // Set new positions to initial values. for(i = size; i < tsize; i++) temp[i] = initv; size = tsize; // update the size value delete [] data; // delete the old array data = temp; // save pointer to new data } void LongArray::Init( long defval ) { initv = defval; for(unsigned i = 0; i < size; i++) data[i] = defval; } void LongArray::Put( unsigned i, long elt ) { assert( i < size ); data[i] = elt; }