//This is the file: pfarraybak.cpp. //This is the implementation for the template class PFArrayBak. The //interface for the template class PFArrayBak is in the file pfarraybak.h. #include "pfarraybak.h" #include using std::cout; namespace PFArraySavitch { template PFArrayBak::PFArrayBak( ) : PFArray( ), usedB(0) { b = new T[getCapacity( )]; } template PFArrayBak::PFArrayBak(int capacityValue) : PFArray(capacityValue), usedB(0) { b = new T[getCapacity( )]; } template PFArrayBak::PFArrayBak(const PFArrayBak& oldObject) : PFArray(oldObject), usedB(0) { b = new T[getCapacity( )]; usedB = oldObject.getNumberUsed(); for (int i = 0; i < usedB; i++) b[i] = oldObject.b[i]; } template void PFArrayBak::backup( ) { usedB = getNumberUsed( ); for (int i = 0; i < usedB; i++) b[i] = operator[](i); } template void PFArrayBak::restore( ) { emptyArray( ); for (int i = 0; i < usedB; i++) addElement(b[i]); } template PFArrayBak& PFArrayBak::operator =(const PFArrayBak& rightSide) { PFArray::operator =(rightSide); if (getCapacity( ) != rightSide.getCapacity( )) { delete [] b; b = new T[rightSide.getCapacity( )]; } usedB = rightSide.usedB; for (int i = 0; i < usedB; i++) b[i] = rightSide.b[i]; return *this; } template PFArrayBak::~PFArrayBak( ) { delete [] b; } }// PFArraySavitch