 |
Effective C++: 55 Specific Ways to Improve Your Programs and Designs (3rd Edition) by Scott Meyers
Book Summary InformationAuthor: Scott Meyers Edition: Paperback Audio: English (Unknown); English (Original Language); English (Published) Published: 2005-05-22 ISBN: 0321334876 Number of pages: 320 Publisher: Addison-Wesley Professional Accessories:
Book Reviews of Effective C++: 55 Specific Ways to Improve Your Programs and Designs (3rd Edition)Book Review: Simply the best "second book" on C++ Summary: 5 Stars
Along with classics such as Kernighan & Ritchie's "The C programming language" and Steve McConnell's "Code Complete", "Effective C++" by Scott Meyers belongs to a very small list of indispensable books on programming. Its main difference from K&R and Code Complete is that "Effective C++" assumes you have already read another book on the topic, and you are now trying to make effective use of the powerful beast that is C++.
The Good: Meyers has divided his material into 55 Items, which he then grouped into 9 Chapters focusing on broad topics such as resource management, object-oriented design, and generic programming. Each Item is easy to read, to the point, and immensely valuable to every C++ programmer. Some of the issues discussed are quite counterintuitive; here are three of my favorite examples: a) it is possible to have a pure virtual function for which a definition must be provided (Item 7), b) a single object might have more than one address (Item 27), and c) a freestanding empty object is usually as big as a char and if contained within another object might cause the latter to gain the size of an int (Item 39). In such cases, as well as when covering less obscure topics (e.g. C++ generally doesn't look in templatized base classes for inherited names, Item 43), Meyers offers solid and carefully reasoned advice. Each item is aptly titled and ends with a brief list of "Things to remember"; these lists are very useful when re-reading this volume. The third edition of "Effective C++" was published in 2005, so it is not only compliant with standard (1998/2003) C++, but it has also incorporated current best practices that have emerged since the standard was established. Finally, the book also includes discussions of concepts relevant to the soon-to-be-published new standard (still known as C++0x), through Technical Report 1 (especially on tr1::shared_ptr).
The Bad: since this book was not written in the future [sic], it does not contain material on aspects of C++0x that had not been finalized in 2005. It will probably take Meyers a few more years to determine which aspects of the new standard are sufficiently tricky as to be included in the fourth edition of his book. Thus, even though this is among the most up-to-date C++ books on the market, it does not (since it could not) contain too much on C++0x. Apart from this, the main (to be honest, the only) complaint I have is that this book uses different conventions for pointers when they are in a function's return type (T* func()) and in a variable definition (T *var) -- unless we're dealing with pointer-to-char in which case all bets are off. Following from this is another difference, that between pointer parameters (func(T *param)) and reference parameters (func(T& param)). The fact that I'm reduced to mentioning these conventions in a paragraph allegedly dealing with "The Bad" aspects of the book shows how impressive and essentially flawless this volume is.
There are those (few, unhappy few) who say that a good reference like Stroustrup's "The C++ Programming Language" or Lippman/Lajoie/Moo's "C++ Primer" obviates the need for books like those in the "Effective C++" series. Such criticisms miss the point: 1,000-page volumes are necessary, but Meyers's format is considerably more pedagogical and therefore more... effective.
In some ways this book is well complemented by Stephen Dewhurst's "C++ Common Knowledge" (especially when it comes to template programming) and by Meyers's other works ("More Effective C++" and "Effective STL"), but if you can afford to buy only one of these volumes you should get "Effective C++". I look forward to reading the fourth edition.
Alexandros Gezerlis
Summary of Effective C++: 55 Specific Ways to Improve Your Programs and Designs (3rd Edition) ?Every C++ professional needs a copy of Effective C++. It is an absolute must-read for anyone thinking of doing serious C++ development. If you?ve never read Effective C++ and you think you know everything about C++, think again.? ? Steve Schirripa, Software Engineer, Google ?C++ and the C++ community have grown up in the last fifteen years, and the third edition of Effective C++ reflects this. The clear and precise style of the book is evidence of Scott?s deep insight and distinctive ability to impart knowledge.? ? Gerhard Kreuzer, Research and Development Engineer, Siemens AG The first two editions of Effective C++ were embraced by hundreds of thousands of programmers worldwide. The reason is clear: Scott Meyers? practical approach to C++ describes the rules of thumb used by the experts ? the things they almost always do or almost always avoid doing ? to produce clear, correct, efficient code. The book is organized around 55 specific guidelines, each of which describes a way to write better C++. Each is backed by concrete examples. For this third edition, more than half the content is new, including added chapters on managing resources and using templates. Topics from the second edition have been extensively revised to reflect modern design considerations, including exceptions, design patterns, and multithreading. Important features of Effective C++ include: - Expert guidance on the design of effective classes, functions, templates, and inheritance hierarchies.
- Applications of new ?TR1? standard library functionality, along with comparisons to existing standard library components.
- Insights into differences between C++ and other languages (e.g., Java, C#, C) that help developers from those languages assimilate ?the C++ way? of doing things.
|
 |
|
|
C++ Programming Language, The (3rd Edition)by Bjarne Stroustrup Addison-Wesley Professional; Published: 1997-06-30; Paperback; BookBest price: $40.44Price in other shops: $79.99
Modern C++ Design: Generic Programming and Design Patterns Appliedby Andrei Alexandrescu Addison-Wesley Professional; Published: 2001-02-23; Paperback; BookBest price: $37.67Price in other shops: $59.99
Exceptional C++: 47 Engineering Puzzles, Programming Problems, and Solutionsby Herb Sutter Addison-Wesley Professional; Published: 1999-11-28; Paperback; BookBest price: $30.00Price in other shops: $49.99
C++ Coding Standards: 101 Rules, Guidelines, and Best Practicesby Herb Sutter, Andrei Alexandrescu Addison-Wesley Professional; Published: 2004-11-04; Paperback; BookBest price: $30.00Price in other shops: $49.99
Design Patterns: Elements of Reusable Object-Oriented Softwareby Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides Addison-Wesley Professional; Published: 1994-11-10; Hardcover; BookBest price: $35.45Price in other shops: $59.99
Effective STL: 50 Specific Ways to Improve Your Use of the Standard Template Libraryby Scott Meyers Addison-Wesley Professional; Published: 2001-06-16; Paperback; BookBest price: $31.30Price in other shops: $49.99
More Effective C++: 35 New Ways to Improve Your Programs and Designsby Scott Meyers Addison-Wesley Professional; Published: 1996-01-08; Paperback; BookBest price: $28.75Price in other shops: $49.99
The C++ Standard Library: A Tutorial and Referenceby Nicolai M. Josuttis Addison-Wesley Professional; Published: 1999-08-22; Hardcover; BookBest price: $45.00Price in other shops: $79.99
The C++ Programming Language: Special Editionby Bjarne Stroustrup Addison-Wesley Professional; Published: 2000-02-11; Hardcover; BookBest price: $54.77Price in other shops: $89.99
Accelerated C++: Practical Programming by Exampleby Andrew Koenig, Barbara E. Moo Addison-Wesley Professional; Published: 2000-08-24; Paperback; BookBest price: $26.99Price in other shops: $49.99
|