Cubbi wrote: |
---|
This book, in its 6th edition (second printing, 2012) maintains the layout and much of the content of its first edition (1991): it describes the mostly C-like language that was in use back then, with the rest of the 20+ years of C++ history tacked on as an afterthought. Even in the original part, classes appear long after the book spent much of the volume talking about structs, unions, arrays, pointers, and functions that work with them using C idioms and approaches (with a few mentions of C++ "alternatives"). The early 90s C++ material in chapter 15 is introduced as "several new developments in C++, beginning with exceptions" -- seriously, that's what a 2012 book says! Function templates and namespaces, C++ casts, and even the keyword typename are also introduced as "new", and the whole 1998 standard library, partially discussed in chapters 16 and 17, is "recently added". The 2011 additions are only briefly discussed in the last chapter (chapter 18), and although a few C++11 core language bits are sprinkled through the book, they are not actually used. There's also occasional invented (or perhaps archaic) terminology, mentions of the special rules for the compilers that were obsolete by 1992, distracting discussions of the pecularities of the 1989 and even pre-1989 C, occasional egregious C-isms and other poor programming practices in the examples, and similar signs of its long and patchy history. There are some factual errors, but not a lot (certainly less than in some other textbooks), mostly found in the older chapters and appendices. A couple things that I liked were that it gives a half-decent beginner-level exposure to valarray (which many other authors ignore) and that the use of I/O in the examples is generally following the accepted practices, somewhat at odds with much of the surrounding code. Overall, if you're looking for an introductory book on C++ today, look elsewhere. |