Search in Book Reviews
The book starts with a discussion of the origins and development of C++, a review of programming paradigms (from procedural through to OO and generic) and how C++ supports these. The standard library is then described running quickly through I/O, strings, containers (vectors, lists, etc.), algorithms and iterators (operations such as copying, sorting, searching, etc.) and maths. This enables the use of powerful tools before having to understand implementation details (which many end-users may never do?). Part one then covers basic facilities (procedural programming?) describing types, pointers, arrays, statements, functions, etc. ending with a discussion on separate compilation and using header files (with all the problems that this entails). Part two then moves on to abstraction and the support for OO and generic programming (classes, inheritance, templates and class hierarchies). Part three covers the standard library and part four is a short discussion on design. Although the C++ language is described the book emphasises design and use, describing not only how to do something but also when and why to use a particular construct or facilities and what the possible alternatives are (and what pitfalls they may lead too).
I liked the structure of the book with part one taking the reader through traditional procedural programming techniques and then moving onto OO in part two. This enables readers to use and appreciate objects without having to plunge into the implementation details of classes. I am aware many OO enthusiasts disagree with such an approach saying that students should be implementing classes from day one (before they know how to write basic expressions and implement simple functions?) A book for the professional programmer and an excellent reference to the standard library. Not suitable for students learning C++ unless very experienced and good programmers.