1: // Created by Frank M. Carrano and Timothy M. Henry. 2: // Copyright (c) 2017 Pearson Education, Hoboken, New Jersey. 4: template<class ItemType> 5: ItemType ArrayList<ItemType>::replace(int position, const ItemType& newEntry) 6: throw(PrecondViolatedExcept) 7: { 8: // Enforce precondition 9: bool ableToSet = (position >= 1) && (position <= itemCount); 10: if (ableToSet) 11: { 12: ItemType oldEntry = items[position]; 13: items[position] = newEntry; 14: return oldEntry; 15: } 16: else 17: { 18: std::string message = "replace() called with an empty list or "; 19: message = message + "invalid position."; 20: throw(PrecondViolatedExcept(message)); 21: } // end if 22: } // end replace