Data abstraction and problem solving with C++ walls & mirrors - Carrano, Frank M. (Pearson/Addison Wesley, 2007)