

Buy anything from 5,000+ international stores. One checkout price. No surprise fees. Join 2M+ shoppers on Desertcart.
Desertcart purchases this item on your behalf and handles shipping, customs, and support to New Zealand.
“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. Review: Excellent Intermediate C++ Book - So... I read alot 1 or 2 star reviews for this book and many mention that Meyers either doesn't go into enough detail or he explains things that are rather obvious to most C++ programmers. 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. Review: Best Book Out If You're Looking For An Advanced C++ Style Guide! - In learning programming, different textbooks suit different purposes ... 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!







| Best Sellers Rank | #696,934 in Books ( See Top 100 in Books ) #122 in C++ Programming Language #727 in Software Development (Books) #1,765 in Computer Software (Books) |
| Customer Reviews | 4.6 out of 5 stars 552 Reviews |
P**.
Excellent Intermediate C++ Book
So... I read alot 1 or 2 star reviews for this book and many mention that Meyers either doesn't go into enough detail or he explains things that are rather obvious to most C++ programmers. 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.
A**R
Best Book Out If You're Looking For An Advanced C++ Style Guide!
In learning programming, different textbooks suit different purposes ... 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!
L**A
Coming to C++ as a Java programmer, this book is exactly what I needed!
It's quite difficult to find a good book that assumes your familiarity with programming as well as your obliviousness of the language in question. This book happens to be in that rare minority. 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.
-**-
Fantastic book for intermediate level C++ programmers
I used this book as my primary source to transition from programming at College in C (where most programs are several thousand lines at most) to programming professionally in C++ (where you often have to manage anywhere from tens of thousands to millions of lines of code, most of which were not written by you). It does a fantastic job of giving you tips about the proper way to engineer your software so that it's not just correct, but also maintainable and self-documenting. You'll also find reading other people's code much easier after going through this book, since the paradigms that Mr. Meyers describes aren't just for academic interest -- they're actually being used out there in the wild. Each of the 55 "Tips" are quite short and fairly self-contained, and the Author's friendly style makes this book an extremely easy read to boot. If you don't know why you'd bother to use a "const", why you'd use the more complicated C++ casts when the C-style casts work just fine, or why you would ever declare a constructor to be private, then it's time to pick up this book. Even if you do know all of these things, this book will almost certainly teach you something, or at least remind you of a few techniques. This should be everyone's second book on C/C++. Highly recommended.
P**S
Each item is examined carefully
The "55 Specific Ways..." are indeed 55 very specific C++ issues most programmers of the language will at some point or another trip; certainly I tripped in several of them! Being a maintenance engineer/supervisor for the most part this is the perfect book to brush up and become dangerous with C++. Already helped me a great deal on a customer issue that had to do with exception handling. The fact each of the 55 items are delved in depth with examples is very powerful; also many references to other items as one goes thru a new item, in case one forgets, which doesn't take long. Perhaps the only reason for 4 out of five is that the way it's written is a bit too colloquial which I'm not that used to.
L**L
Excellent book
Developing software in a matured and large software development team makes a junior C++ developer like me grow much faster in a right track. Programming becomes much more straightforward when one is working in a resource-established environment. As is often said that a good programmer behaves "lazy", I always tried to take the advantages of the same conventions and idioms that our senior developers adopted. Doing this is practical and reasonable when considered in the context of rapid development. However, any developer should know the theory behind those conventions and idioms if she is going to do some serious software development. Meyers' Effective C++ is such a complement that reveals the story behind the scene in C++. For me, I probably know and even implicitly applied many suggestions it mentioned in the book to my own project but had never really thought about them. The book discussed 50 more ways in different items for effective C++ programming. In each item, besides to show a proofed convention or idiom of doing something, it often provides another way to achieve the same goal, which is more intuitive but plausible. Had I been more "diligent" in exploring my own way of developing the software, I would have probably stepped onto those pitfalls for dozens of times, some of which are even very subtle and hard to detect.
Z**N
Kindle Edition formatting acceptable, but not great
This book is fantastic, I own three editions. But the Kindle edition is a pale shadow of the print edition. Purchase the printed edition first, use the Kindle edition only as a portable reference. Expect your reading speed to be much slower on the Kindle edition than in the print edition. The Kindle display is too narrow for the code, causing lines to wrap at inconvenient places. Code is mostly readable, but the line wraps render the code less readable than the print edition. The Kindle edition uses the same serifed font for both code and prose, all in black. The printed edition uses a serif font for prose, and uses a sans-serif font to differentiate code. The print edition uses color to identifies important code. Comparing the two editions gives you deeper appreciation for the art of typesetting. Photos comparing Kindle and printed formatting at [...] The Scott Meyers books were *the* reason I bought a Kindle: these books were in my backpack on the day I ordered my Kindle. "I could carry a 10oz Kindle instead of a stack of books? Sold!" Even with the Kindle's limited formatting capabilities, I'm glad to finally have them in a Kindle edition.
K**F
Must have for any C++ Programmer
This is a great book which covers a lot of useful topics for every C++ professional. I have been programming in C++ for a while so some of the topics Scott Mayers discussed were already familiar but I still picked up a lot from this book. From a beginner to intermediate programmer, this is a must have. Advanced programmers probably have this book already (or its previous editions). This book assumes that you already used C++ and understand its fundamentals. Scott's goal is not to teach the fundamentals but to advice readers on how to use the language effectively - generating good, efficient, re-usable, portable code. On this goal, he was successful. Its pretty much like when I was learning Japanese. I understood the fundamentals and word translations but in order to effectively communicate in that language, I had to be familiar with proper sentence construction, various formalities (some words are not appropriate for certain settings or people) and word dynamics as well. In a sense, this book (or Scott) is your sensei to good C++ programming. Some more suggested reading to complement Scott Mayer's series: Design Patterns: Elements of Reusable Object-Oriented Software (Addison-Wesley Professional Computing Series) and Modern C++ Design: Generic Programming and Design Patterns Applied (C++ In-Depth Series)
A**O
Scott Meyers é sempre uma recomendação pra C++ developers
Excelente livro pra quem está procurando melhorar o seu "c++ programming skills". Livro bem organizado, com excelente dicas e indicado pra quem já tem fluência na linguagem
A**I
Best book on C++!
This is a must read book for C++ developers. Sometimes we don't know all aspects of a C++ concepts. This will explain every topic in details with recommendation for good practice. Also this must simpler than Stroustrup's C++ book, which is must more philosophical. Maybe after this book one can go for Stroustrup.
A**S
C++の学習には必携
C++を実際に使う上で知っているべきノウハウや避けるべき「落とし穴」が、ほどよい分量によくまとめられていると思います。英語も読みやすく、大事なことは「Things to Remember」に要約されていますので、まだ十分に習得していない部分を見直すときにも便利です。
Ó**R
Para cuando piensas que ya sabes C++
Este libro es tal cual lo esperaba. En alguna web leía que otros como Stroustroup se ocupan de la legalidad (qué se puede hacer con el lenguaje), y Meyers más bien se centra en la moralidad (qué se debe o no hacer). Sobre la primera parte leí hace mucho, la puse en práctica y ahí se quedó. Ahora tengo un contacto más cercano con el lenguaje, y para ir más allá de escribir programas que compilen, este libro es realmente útil. Más allá de los consejos, la explicación de por qué hacer algo de cierto modo es bueno o malo da lugar a una mejora en la calidad de lo que se escribe. Lo único que hace falta es tiempo para ir asimilando el contenido. Una cosa es admirar la explicación y otra llevarla a la práctica.
A**R
If you think you should buy this book, it's because you should.
Fantastic book, filled with many pointers (I'm sorry) on writing efficient and maintainable code. It's also small which makes it handy for carrying around and it's straight to the point which makes it awesome for when you're doing a project, you just go to the index and find what you want, read it and you have an exact understanding of what's going on and how to implement it in your own projects.
Trustpilot
3 weeks ago
1 month ago