 |
C++ Primer (4th Edition) by Stanley B. Lippman, Josée Lajoie, Barbara E. Moo
Book Summary InformationAuthor: Barbara E. Moo, Josée Lajoie, Stanley B. Lippman Edition: Paperback Audio: English (Unknown); English (Original Language); English (Published) Published: 2005-02-24 ISBN: 0201721481 Number of pages: 912 Publisher: Addison-Wesley Professional
Book Reviews of C++ Primer (4th Edition)Book Review: A good first C++ book which is also a great second book and a useful reference Summary: 5 Stars
As pointed out in other reviews: compared to previous editions, the 4th edition of the "C++ Primer" is considerably different (and shorter). For this edition, Barbara E. Moo (co-author of "Accelerated C++"), a long-time programmer and writer, vastly revamped and enhanced Stan Lippman's (and Josee Lajoie's) classic.
The Good: This book is over 800 pages long, and it is quite complete in its coverage, but it is highly readable. The "C++ Primer" can be used as an introductory text: the authors have interspersed a myriad of code snippets throughout the text (which they also integrated into complete working programs; these are provided on the publisher's website, packaged for different platforms). Similarly, there are exercises at the end of most sections; these are well thought out, and greatly facilitate the reader's learning (unauthorized solutions exist on the web in the form of a wiki). Furthermore, throughout the book parts of the text have been highlighted to call attention to common pitfalls, good programming practices, and important concepts. Finally, each chapter concludes with a summary and a glossary of defined terms. In contradistinction to many other popular volumes, this book teaches real C++, not "C with classes", i.e., it contains extensive treatments of the standard library containers and algorithms, of object-oriented programming, and of generic programming. For example, the coverage of the standard library in this book is much more extensive than in "C++ Primer Plus" by Stephen Prata, a book that is often compared with (or confused with) the "C++ Primer". Even so, the "C++ Primer" also covers a number of older topics such as C-style character strings, lower-level bit manipulation of integral values, and old-style casts. The material in this book is thematically organized (pointers, expressions, functions, classes, constructors, object-oriented programming, template programming, etc.). This, along with the many forward and backward cross-references, makes it a great reference both for people who have never read it, and for those who read it a while back.
The Bad: Object-oriented programming is covered in approximately 60 pages. The coverage is solid, just like in the rest of the book, but it is condensed. For the sake of comparison: Josuttis's book "Object-Oriented Programming in C++" devotes 170 pages on more or less the same topics. In other words, an object-oriented design background, while not strictly necessary, would make reading this book easier. This aspect of "condensedness" is a more general feature of reading the "C++ Primer": even though the book is quite long, there is no filler material. This slows the reader down, so it might interfere with one's progress when using this as a first C++ book. For example, the first 300 pages (perhaps mention but) do not discuss in detail the standard library algorithms, smart pointers, object-oriented or generic programming, and other aspects of professional C++ development. A related point: I mentioned above that the book works as a reference since it is complete and contains many cross-references. A side-effect of this is that some of the earlier chapters make repeated mention of topics that have not yet been covered; that's great if this is your second C++ book (since it means every chapter is complete), but is potentially too much information for a total newbie. Finally, this book was intentionally limited to Standard C++. As a result, it doesn't talk about TR1 (a specification for functionality being added to C++'s standard library) or boost (a collection of libraries offering TR1 implementations and much more), or threading in C++. A 5th edition of the "C++ Primer" will probably appear after the new standard (still known as C++0x) comes out.
Despite the few drawbacks that I have noted above, I believe that this is a wonderful book which deserves 5 stars.
Here are my suggestions on related reading.
Recommended prequel:
* Accelerated C++, by Andrew Koenig and Barbara E. Moo
An excellent first book on C++. Goes through many topics quite fast, but is highly readable. Covers essentially all of standard C++ in under 300 pages (see also my review of it on amazon).
Recommended follow-up:
* Effective C++, 3rd edition, by Scott Meyers
This assumes you have already come across all of the material contained in the "C++ Primer". It offers solid advice on numerous aspects of effective C++ development. Meyers also describes a few design patterns as well as more modern topics like TR1.
Alexandros Gezerlis
Summary of C++ Primer (4th Edition)"C++ Primer is well known as one of the best books for learning C++ and is useful for C++ programmers of all skill levels. This Fourth Edition not only keeps this tradition alive, it actually improves on it." --Steve Vinoski, Chief Engineer, Product Innovation, IONA Technologies "The Primer really brings this large and complex language down to size." --Justin Shaw, Senior Member of Technical Staff, Electronic Programs Division, The Aerospace Corporation "It not only gets novices up and running early, but gets them to do so using good programming practices." --Nevin ":-)" Liber, Senior Principal Engineer (C++ developer since 1988) This popular tutorial introduction to standard C++ has been completely updated, reorganized, and rewritten to help programmers learn the language faster and use it in a more modern, effective way. Just as C++ has evolved since the last edition, so has the authors' approach to teaching it. They now introduce the C++ standard library from the beginning, giving readers the means to write useful programs without first having to master every language detail. Highlighting today's best practices, they show how to write programs that are safe, can be built quickly, and yet offer outstanding performance. Examples that take advantage of the library, and explain the features of C++, also show how to make the best use of the language. As in its previous editions, the book's authoritative discussion of fundamental C++ concepts and techniques makes it a valuable resource even for more experienced programmers. Program Faster and More Effectively with This Rewritten Classic - Restructured for quicker learning, using the C++ standard library
- Updated to teach the most current programming styles and program design techniques
- Filled with new learning aids that emphasize important points, warn about common pitfalls, suggest good programming practices, and provide general usage tips
- Complete with exercises that reinforce skills learned
- Authoritative and comprehensive in its coverage
The source code for the book's extended examples is available on the Web at the address below. www.awprofessional.com/cpp_primer
This new edition of C++ Primer, a favorite choice for a first C++ book, has been greatly improved with the latest and greatest on C++, stressing the built-in language features of the C++ Standard Library. For this new version--weighing in at a massive 1,237 pages--Stanley Lippman, a well-known C++ expert, teams up with Josée Lajoie, who has helped define the C++ international language standard. The new material is excellent for programmers who want to get the most out of new and advanced features in the language.The authors still introduce the basics of C++, including data types and pointers, but quickly move on to stress how to get the most out of the built-in features of ISO-standard C++. Throughout this book built-in support for the C++ Standard Library, such as container classes like vectors and maps, and other standard features, such as the string class, are integrated into a tried-and- proven basic-language tutorial. The major new features of C++ (templates, name spaces, and run-time type identification) all get their due. The result is an authoritative guide to basic and advanced C++ in a clear and readable style, with plenty of short, practical examples throughout the text. The book includes exercises--some quite challenging--for every section: a perfect choice both for self-study and the classroom. --Richard Dragan
|
 |