Skip to content
Paperback Advanced C++ Programming Styles and Idioms Book

ISBN: 0201548550

ISBN13: 9780201548556

Advanced C++ Programming Styles and Idioms

Looks at the design features of the C++ programming language. Assuming a background in the syntax of C++, it shows how to become an expert C++ programmer by learning the idioms of the language. This description may be from another edition of this product.

Recommended

Format: Paperback

Condition: Very Good

$6.69
Save $53.30!
List Price $59.99
Almost Gone, Only 1 Left!

Customer Reviews

5 ratings

Well worth many reads, even if 11 years old

Coplien has won many consensus thanks to this book and his "Multi-paradigm design". You can easily verify it looking at the bibliography of EVERY book on C++ written after 1991: you'll certainly find "Advanced C++ Programming Styles and Idioms". Many books have used it to expose tecniques. The best examples are both Meyers' "Effective" and "More effective" books. You can jump directly to the Recommended Readings sections to read the right acknowledgment to Coplien's book. You can then browse the items, and discover that some of them are revisitations and expansions of Coplien's ones). Reading this book completely changed my view of C++, and, indeed, of any programming language. It traces a clear path that lead from a "normal" use of the language to a well-conscious use of each of his potentialities (those available in 1991, at least). Just look at the functors section to understand what a gem is this book, this is one of the most mind-expanding examples of the book. And if you did not understand what ADT are before, you'll gain a fine and solid account here. This just to quote a couple of examples.Eleven years are a lot, and the language have undergone major expansions, especially since the ANSI draft on 1996-97. However, this doesn't take anything away from the value of the book, after all you can always learn namespaces from any other modern book. It's not a case that this is one of the most quoted books in the C++ literature.Many have said it, and I can only confirm that this book should have a stable place on each C++ developer's bookshelf (together with Stroustrup, Meyers, Koeing, Allison and Murray).

Accesible introduction to patterns

This book is quite old now, but the material covered in the book does not suffer from its age, because the book is not supposed to be a language reference. The book starts with some words of wisdom on the basics of the language, for example spending just long enough talking about inheritence and polymorphism to get to the heart of the issue. There are some of the simpler idioms introduced earlier in the book (virtual constructors, reference counts, handle-bodies) and then the book moves towards more advanced material, including multiple dispatch, and the best discussion of the prototype pattern ("exemplars") that I have seen in any book. If you're looking for a way into "pattern oriented programming", and you found "Design Patterns" completely unreadable, this is a good book to get you started on some concrete examples.

A dated yet very good book

It is a very good book, although a little dated. It explains a lot of items in > and <<More effective c++>> in more details, it tells you how to do the things, and why to do in this way. <p>It discusses many idioms, which are the low level equivalences of patterns (see <<Design Patterns>>), for example, body/handle idiom is equivalent to bridge pattern, examplar is equivalent to prototype pattern, envelope/letter is related to state pattern, ... Orthodox Canonical class form is called "big three" in <<c++ faqs>> ... Overloading subscripting for class File and FileRef on page 51 gives the idea of proxy for distinguishing reads from writes presented in <<More effective c++>>, but <<More effective C++>> gives a more detailed discussion on limitations etc (it's normal since <<More>> appeared much later). It provides interesting discussion about difference of performance between different string implementations (p58 -- p65). It discusses relations between pointer to member functions, functors and virtual functions (2.10 and 5.6), and explains the power of polymorphism. It discusses "Dynamic inheritence" in chapter 10, which is not supported directely in C++ (related to state pattern). <p>Overall, this book provides a lot of original c++ ideas, which affected the later books as <<(More) Effective C++>> and <<Design patterns>> very much.<p>It is more like a book, while <<(More) effective c++>> and <<Design patterns>> are more like a reference. It contains exercises (no solutions) at the end of each chapter, while <<(More) effective c++>> and <<Design patterns>> do not.<p>Some discussions are interesting, but not completely correct (it is understandable because of its publishing year), for example, reference counting to implement string class, when shouldn't we use this idiom and how we can improve it? See further discussion of reference counting for string using flags "shared", "sharable" in <<More effective C++>>. Testing self assignment is a good thing, however, is it away necessary? No. You can simply allocate new memory before desallocate old memory, if you avoid self assignment test, you probably not only improve the performance of your code, but also make it exceptionally safe (see <<Exceptional C++>>)<p>It lacks discussion for new features as namespace, exceptions, which you can find in <<More effective c++>> and <<Exceptional c++: 47 puzzles>>, STL can be found in a very good book <<The C++ Standard Library : A Tutorial and Reference>> as well. It lacks new style cast , for example, const cast and mutable can be used to make to difference between logical constness and physical constness, but at the time the book was writen, they did not exist yet (see 2.9, page 26 -- 28).<p>Implicite type conversion (3.4)is no longer considered as a good thing for string, read Item 39 of <<Exceptional C++>> on page 162 to see why (think about what will happen with or without implicit type conversion: string s1, s2, s3;

Mind Blowing.....

This book will take the reader where they thought C++ could never go. Though some idioms are dated (the book was written before RTTI and STL were added to the standard) it is nonetheless a thought provoking and invaluable book. Many of the ideas presented actually(! ) make the reader think and wrestle with before they are fully grasped. A must for any intermediate/advanced C++ programmer. When finished you will definitely have a stronger appreciation of the power of C++. I'm not sure if Microsofts COM came before this book but if it didn't then they sure swiped alot of ideas from it!

master c++ language and OOP and become Dark Lord of Sith

This book is the best C++ book ever inked to paper. This book should not be read if you are a apprentice C++ programmer in training,The key here is that you MUST have a solid understanding of what classes can and cannot do, understanding of copy semantics, object identity(object equality vs equivalence), inheritance model and how polymorphism achieves its power through dynamic binding, understanding a neglected and overly under estimated constructs of horizonal access and vertical access between subclass users and class instantiate users with the ACL(Access Control List: public, protected, private, and usage of friend classes model), pointer/reference acrobatics and and a strong grounding in the IS-A, HAS-A, and USES-A models are you then ready for this book. The book will comb over the basics, but for really getting the most of this book, all of the above must truly be an after thought before plowing ahead. Coplien is a hard core systems architect, what is meant by systems is over a thousand programmers tangled in over hundreds of millions of lines of code and he has been responsible for reviewing the quality of these eystems even casual systems with smaller baselines so the expertise of the author is never to be questioned. His style and approach to teaching is that the basics of the c++ language are miscontrued. The perception is that a programmer needs only to get by with the basics constructs of the language to develop a systematic model, which is an unrealistic and self-damaging mindset. There are constructs in the language that you just have to know; advanced template design utilizing partial specialization, memory management internals,coverage on pointers to member functions, which is syntactically different from pointers to functions, advanced coverage on data abstraction. This book could be read by an aspiring programmer with the basics of the C++ language, but now that you may be more clear on what basics truly means, this book will guaranteed lead you to the path of mastery of its syntax, "you can do this, but do not ever to this" approach, real-world problem models with exacting code that is fantastically diagrammed and explained so that you see every construct of the language used and why it would be used, much in the style of how Bjarne Stoustroup patterns his teaching model: example given first, then follow with the abstract and general rule.This is the easiest read for any programming and design book that was ever an advanced book. A definite must buy or you will left out of the real power and surprisingly overlooked features that you just gotta' know!
Copyright © 2023 Thriftbooks.com Terms of Use | Privacy Policy | Do Not Sell/Share My Personal Information | Cookie Policy | Cookie Preferences | Accessibility Statement
ThriftBooks® and the ThriftBooks® logo are registered trademarks of Thrift Books Global, LLC
GoDaddy Verified and Secured