Data abstraction & problem solving with C++ : Walls and mirrors - Carrano, Frank M. (Pearson, 2013)