- Paperback: 320 pages
- Publisher: Addison-Wesley Professional; 3 edition (May 22, 2005)
- Language: English
- ISBN-10: 0321334876
- ISBN-13: 978-0321334879
- Product Dimensions: 7.3 x 0.9 x 8.9 inches
- Shipping Weight: 1.4 pounds (View shipping rates and policies)
- Average Customer Review: 131 customer reviews
- Amazon Best Sellers Rank: #25,280 in Books (See Top 100 in Books)
Enter your mobile number or email address below and we'll send you a link to download the free Kindle App. Then you can start reading Kindle books on your smartphone, tablet, or computer - no Kindle device required.
To get the free app, enter your mobile phone number.
Effective C++: 55 Specific Ways to Improve Your Programs and Designs (3rd Edition) 3rd Edition
Use the Amazon App to scan ISBNs and compare prices.
The Amazon Book Review
Author interviews, book reviews, editors picks, and more. Read it now
Frequently bought together
Customers who bought this item also bought
From the Back Cover
"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#, ethat help developers from those languages assimilate "the C++ way" of doing things.
About the Author
Scott Meyers is one of the world's foremost authorities on C++, providing training and consulting services to clients worldwide. He is the author of the best-selling Effective C++ series of books (Effective C++, More Effective C++, and Effective STL) and of the innovative Effective C++ CD. He is consulting editor for Addison Wesley's Effective Software Development Series and is a founding member of the Advisory Board for The C++ Source (http://www.artima.com/cppsource). He holds a Ph.D. in Computer Science from Brown University. His web site is http://www.aristeia.com.
Top customer reviews
C/C++ to me is about your progression in learning the language. Most people start out small begin learning and slow progress to much larger programs. As you make your way to these larger programs you run into some fundamental logic flaws (or design flaws). This book helps shed some very useful and en lighting information on these flaws. Be it you think it's a language flaw or design flaw in your programming. This book will give you some very useful tools to be used medium to large scale c++ programs. It is a most definitely on my recommendation of books to read for a C++ programmer.
Of course, this book contains much more than just smart pointers and RAII. It is dense with "oh snap!" and "twist!" moments, when some lesser-known or edge case C++ behavior is revealed. It also introduces you to various other relatively new features of C++ that are already available to you through Boost. The majority of the book is directly applicable to everyday C++ development, with a few sections devoted to topics which you can skip/skim if you do not immediately need them.
Sections you can safely skip:
1) Parts of Chapter 7: Templates and Generic Programming, especially the sections on traits and template metaprogramming.
2) Chapter 8: Customizing new and delete.
I hope you enjoy this book as much as I did, and use it to quickly become an expert, or at least advanced, C++ developer. My last warning to you is that the companion book, More Effective C++: 35 New Ways to Improve Your Programs and Designs, is 9 years older than this book, and as such is not nearly as relevant. Some of the content, for example that related to compiler implementations and performance of various C++ constructs, should probably be viewed with suspicion.
Let's divide up the task of becoming a C++ software engineer specialising in programming challenging systems ...
(1) learning the essentials of programming;
(2) learning the essentials of low level programming with its bit fiddling logical operators and implementation issues;
(3) learning C++ syntax;
(4) learning C++ development tools;
(5) picking up knowledge of the situational logic of software engineering;
(6) picking up knowledge of object oriented and procedural and other approaches to programming solutions to given problems and picking up the common sense to know the best approach to a given problem;
(7) learning C++ libraries;
(8) learning STL the standard template library;
(9) picking up knowledge so that one can develop an appropriate C++ style to the task at hand, whatever the task at hand may be ... knowing that educational miniprojects and real medium sized to large systems have different needs in this respect.
In this matter I am trying to distinguish knowledge and skills. I maintain that this book essentially deals with topics (2) (5) (6) (7) and (9) as outlined above, with application to the perculiarities of C++. In other words, this is an advanced work and should not be the first C++ book a first year university student should buy! First things first you need to buy a language primer ...
Nevertheless once one has mastered the basics of C++ this is an excellent work to start picking up rules of C++ style. Helpfully the author includes a number of items which describe typical C++ blunders that result from inadequate mastery of the basics of C++. Therefore after learning the basics of C++ most students would benefit by reading this book cover to cover! The explanations are clear and terse and if contemplated will enable many a conceptual misunderstanding of typical C++ semantics in C++ typical implementations to be clarified.
From earlier editions some of the advice has changed. There is a helpful table pp277-9 that describes a mapping of relevant items between the 2nd and 3rd editions! That the author has consolidated and clarified his advice on good C++ style is a good thing given how often he is cited in both industry and academia. Some advice has been updated to deal with the C++ 11 standard adopted two years ago; some has been updated to deal with the latest in C++ development technologies and libraries ...
Well worth reading even for the experienced programmer. Well worth buying even if you have an earlier edition. I really must find time now to read this properly cover to cover ... as I've read two of his earlier works!