Data Abstraction and Problem Solving With C++: walls and mirrors, 5e - Frank M. Carrano (Pearson Education,Inc.)