Buy new:
$50.99$50.99
FREE delivery:
Monday, Feb 13
Ships from: Amazon.com Sold by: Amazon.com
Buy Used: $28.22
Other Sellers on Amazon
+ $3.58 shipping
97% positive over last 12 months
+ $5.16 shipping
88% positive over last 12 months

Download the free Kindle app and start reading Kindle books instantly on your smartphone, tablet, or computer - no Kindle device required. Learn more
Read instantly on your browser with Kindle for Web.
Using your mobile phone camera - scan the code below and download the Kindle app.


Effective C++: 55 Specific Ways to Improve Your Programs and Designs 3rd Edition
Price | New from | Used from |
- Kindle
$32.99 Read with Our Free App - Paperback
$28.22 - $50.99
Enhance your purchase
― 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.
- ISBN-100321334876
- ISBN-13978-0321334879
- Edition3rd
- PublisherAddison-Wesley Professional
- Publication dateMay 12, 2005
- LanguageEnglish
- Dimensions7.35 x 1 x 9.25 inches
- Print length320 pages
Frequently bought together
- +
- +
What other items do customers buy after viewing this item?
From the Publisher

New edition of Bjarne's Stroustrup's "A Tour of C++" now available
This third edition covers many features that are new in C++20 as implemented by major C++ suppliers, including modules, concepts, coroutines, and ranges. It even introduces some library components in current use that are not scheduled for inclusion in the standard until C++23.
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
|
---|---|---|---|---|---|---|
C++20 for Programmers | Discovering Modern C++ | Beautiful C++ | Core C++ Guidelines Explained | Embracing Modern C++ Safely | Teach Yourself C++ in One Hour a Day | |
Who is this for | Programmers experienced with another language that want to learn C++20. | Those with backgrounds in the sciences that want to learn C++20, regardless of programming experience. | C++ programmers with all levels of experience. | C++ programmers with all levels of experience. | C++ programmers with all levels of experience. | Those with little or no programming experience. |
Approach | Hands-on instruction, including 200+, real-world examples to help you quickly master C++20, its “Big Four” features (Ranges, Concepts, Modules and Coroutines), and idioms using popular compilers. | Drawing on extensive experience teaching C++ to physicists, mathematicians, engineers, and students, this intensive introduction guides you smoothly to sophisticated approaches based on advanced features. | Identifies 30 Core Guidelines you'll find especially valuable and offers detailed practical knowledge for improving your C++ style through useful conceptual insights and expert sample code. | Condenses the C++ Core Guidelines to their essence, removing esoterica, sharing new insights and context, and presenting well-tested examples to help you write more elegant C++ programs and improve legacy code. | Distills the C++ community's years of experience applying C++11 and C++14 features to help you make effective and safe design decisions that reflect real-world, economic engineering tradeoffs in large-scale, diverse software development environments. | This complete tutorial will help you quickly master the basics of object-oriented programming and teach you advanced C++ language features and concepts. |
About the authors | Paul Deitel and Harvey Deitel are the founders of Deitel & Associates, Inc. Millions of people worldwide have used Deitel products to master major programming languages and platforms. | Peter Gottschling has extensive experience teaching C++ to physicists, mathematicians, engineers, and students, is a member of the ISO C++ standards committee and vice-chair of Germany’s programming language standards committee. | J. Guy Davidson and Kate Gregory are expert C++ programmers. Guy is a contributor to the C++ standards committee and Kate is known for her excellent teaching and writing on C++ and programming. | Rainer Grimm is a trainer, coach, and technology Consultant. He is the author of several books on modern C++, concurrency, and blogs at modernesscpp.com. | John Lakos, Vittorio Romeo, Rostislav Khlebnikov, and Alisdair Meredith are software engineers at Bloomberg and leading authorities on C++. John Lakos is a long-time member of the C++ Standards Committee. | Siddhartha Rao is the vice president in charge of product security at SAP SE. A software engineer at heart, Siddhartha is convinced that the rapid evolution of C++ has powered this age of machine learning and artificial intelligence. |
“This is a fine book that covers a surprising amount of the very large language that is C++20—an in-depth treatment of C++ for a reader familiar with how things work in other programming languages.” —Arthur O’Dwyer, C++ trainer | " For true geeks, it is an easy and entertaining read. For most software developers, it offers something new and useful." --Bjarne Stroustrup, inventor of C++ and co-editor of the C++ Core Guidelines | "We are very pleased to see Rainer Grimm applying his teaching skills and industrial background to tackling the hard and necessary task of making [these] accessible to more people." --Bjarne Stroustrup and Herb Sutter, co-editors, C++ Core Guidelines |
Editorial Reviews
From the Back Cover
― 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.
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.
Product details
- Publisher : Addison-Wesley Professional; 3rd edition (May 12, 2005)
- Language : English
- Paperback : 320 pages
- ISBN-10 : 0321334876
- ISBN-13 : 978-0321334879
- Item Weight : 1.23 pounds
- Dimensions : 7.35 x 1 x 9.25 inches
- Best Sellers Rank: #112,764 in Books (See Top 100 in Books)
- #30 in C++ Programming Language
- #53 in Computer Programming Languages
- #303 in Computer Software (Books)
- Customer Reviews:
About the author

For more than 20 years, Scott Meyers' Effective C++ books (Effective C++, Effective Modern C++, Effective STL, and More Effective C++) have set the bar for C++ programming guidance. His clear, engaging explanations of complex technical material have earned him a worldwide following, keeping him in demand as a trainer, consultant, and conference presenter. He has a Ph.D. in Computer Science from Brown University.
Customer reviews
Customer Reviews, including Product Star Ratings help customers to learn more about the product and decide whether it is the right product for them.
To calculate the overall star rating and percentage breakdown by star, we don’t use a simple average. Instead, our system considers things like how recent a review is and if the reviewer bought the item on Amazon. It also analyzed reviews to verify trustworthiness.
Learn more how customers reviews work on Amazon
Reviewed in the United States on June 6, 2008
-
Top reviews
Top reviews from the United States
There was a problem filtering reviews right now. Please try again later.
I'll tell you a bit of my background and why this book is a goldmine for someone like me:
I have a degree in electrical engineering. I did some C++ programming in college but never got to the OOP stuff when I was in school. As I changed jobs over the years eventually I landed in a position where I needed to manage an existing C++ system. I learned the basics of OOP just by doing some reading online and picked it up over the years as most engineers are able to do. I got to the point where I was very familiar with the system and for the most part I could do pretty much everything I needed do for my job.
But my only formal training on C++ barely even scratched the surface of its capabilities, so I thought I should read a book on some "good practices" in C++.
This book was exactly what I was looking for. Coming in at under 300 pages, and with Meyers listing 55 specific items, this only leaves approximately 5 pages per item. This of course means that this book is not the definitive C++ reference guide. That said, this is not a book for beginners. I would say that you should be practicing OOP within C++ for at least a year before reading this book. (But it probably also isn't a book for experts either, because experts probably already know mostly everything in this book.)
Many of the items in this book are structured like this:
1) Meyers shows some snippet of code that looks innocent at first glance.
2) He explains how this could result in disaster if the exact wrong series of events happen (and provides a basic example of how this might unfold).
3) Then he explains how to modify the code to avoid this behavior. (Although, there are some dark corners of C++ that unfortunately can't be completely prevented from happening, even with proper class design. For these, Meyers explains how to minimize these chances of happening.)
This structure is very easy to understand and effective for retaining the information in this book.
In conclusion, I would recommend this book to anyone who understands the rules/syntax of C++ and has been using it for a few years, but maybe needs some guidance in taming the C++ beast.
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!
The importance of the above assumption cannot be disregarded. This book assumes that you have little to no experience of the language. Every Item goes very deep into explanations of the concepts by giving clear (and realistic) examples of the pros and cons of a certain design. The code examples are especially good as they are not fragmented, yet very easy to understand as well as being relatable (if you are already familiar with programming).
The structure of the book is what stands out the most to me. Not only that this will forever remain as a great reference-book, if you're new to C++ like myself, and there is a concept that troubles you, this structure gives you a place to jump into and explore that concept, and from there, expand into other Items of concepts and ideas you may not even have considered in the first place. Another added bonus is the decomposition of each Item. Each Item is concise enough to be read in one go, yet all of them provide details in-length of the matter at hand. On top of that, the Items are not extremely dependent on other Items, making them easy to read as well as referencing.
Top reviews from other countries

If you are serious about learning and using C++ this is a book you will need eventually, I would recommend sooner rather than later. As long as you keep using C++ the worst that could happen is that it sits around on your shelf for a while until you are ready for what it discusses.

Amazon was so nice to deliver it to me on the next working day, so great experience all along.

I doubt there are many C++ programmers out there who would not gain something from a refresher reading of this book.

