Join Amazon Prime and ship Two-Day for free and Overnight for $3.99. Already a member? Sign in.

 

or
Sign in to turn on 1-Click ordering.
 
   
More Buying Choices
31 used & new from $5.23

Have one to sell? Sell yours here
 
   
Tell a Friend
Advanced C++ Programming Styles and Idioms
 
 
Please tell the publisher:
I'd like to read this book on Kindle
 
  

Advanced C++ Programming Styles and Idioms (Paperback)

by James O. Coplien (Author)
4.3 out of 5 stars See all reviews (20 customer reviews)

List Price: $59.99
Price: $59.99 & this item ships for FREE with Super Saver Shipping. Details
Special Offers Available
Temporarily out of stock.
Order now and we'll deliver when available. We'll e-mail you with an estimated delivery date as soon as we have more information. Your account will only be charged when we ship the item.
Ships from and sold by Amazon.com. Gift-wrap available.

31 used & new available from $5.23
Also Available in: List Price: Our Price: Other Offers:
Paperback (Import) Order it used!
 
   

Special Offers and Product Promotions

  • This title is eligible for Amazon Fall Textbook promotions. Get unlimited free Two-Day Shipping for three months with a free trial of Amazon Prime. Add $100 worth of eligible textbooks to your cart to qualify. Sign up at checkout. New members only. Here's how (restrictions apply)

Frequently Bought Together

Customers buy this book with C++ Strategies and Tactics (Addison-Wesley Professional Computing Series) by Robert B. Murray

Advanced C++ Programming Styles and Idioms C++ Strategies and Tactics (Addison-Wesley Professional Computing Series)
Price For Both: $96.50

Customers Who Bought This Item Also Bought

Effective C++: 55 Specific Ways to Improve Your Programs and Designs (3rd Edition) (Addison-Wesley Professional Computing Series)

Effective C++: 55 Specific Ways to Improve Your Programs and Designs (3rd Edition) (Addison-Wesley Professional Computing Series) by Scott Meyers

4.8 out of 5 stars (132)  $41.29
C++ Programming Style (Addison-Wesley Professional Computing Series)

C++ Programming Style (Addison-Wesley Professional Computing Series) by Tom Cargill

3.9 out of 5 stars (7)  $40.49
The Annotated C++ Reference Manual

The Annotated C++ Reference Manual by Margaret A. Ellis

4.3 out of 5 stars (13)  $47.96
The C++ Programming Language: Special Edition (3rd Edition)

The C++ Programming Language: Special Edition (3rd Edition) by Bjarne Stroustrup

4.2 out of 5 stars (278)  $55.43
C++ Templates: The Complete Guide

C++ Templates: The Complete Guide by David Vandevoorde

4.8 out of 5 stars (24)  $59.80
Explore similar items : Books (100)

Editorial Reviews

From the Inside Flap

This book is designed to help programmers who have already learned C++ develop their programming expertise. To understand how programmers achieve proficiency, we need to understand not only how people learn a new language (such as a programming language), but also how a language is used to solve software problems effectively. Learning Programming Languages

Not everything you need to know about a product is described in the owner's manual. Before the arrival of our first child, my wife and I were admonished by a friend that no book, and no training, could completely prepare us for the art of parenting. We must of course learn minimal, essential skills. But the interesting, challenging, and rewarding aspects of raising a child go beyond this basic knowledge. For example, no book or "owner's manual" will help you understand why your three-year-old daughter rubs toothpaste in your one-year-old's hair, or why your children hang their socks in the refrigerator.

The same is true of programming languages. Programming language syntax shapes our thinking to a degree, but what we learn in the "owner's manual" about syntax alone only gets us started. Most of what guides the structure of our programs, and therefore of the systems we build, is the styles and idioms we adopt to express design concepts.

Style distinguishes excellence from accomplishment. An effective parenting style, or programming style, comes from personal experience or by building on the experience of others. A software engineer who knows how to match a programming language to the needs of an application, writes excellent programs. To achieve this level of expertise, we need to go beyond rules and rote, into convention and style, and ultimately into abstractions of concept and structure. It is in that sense that this book is "advanced."

The rules, conventions, and concepts of programming drive the structure of the systems we build: They give us a model of how to build systems. A model for problem decomposition and system composition is a paradigm, a pattern for dividing the world into manageable parts. C++ is a multiparadigm language. C programmers use C++ as a better C. Object-oriented advocates do everything polymorphically. In fact, a variety of approaches is usually necessary to express the solution to a software problem efficiently and elegantly.

Learning a programming language is much like learning a natural language. Knowledge of basic syntax lets a programmer write simple procedures and build them into nontrivial programs, just as someone with a vocabulary of a few hundred German words can write a story far richer than see-Dick-run. But mastery of language is quite another issue. That such stories are nontrivial does not make them elegant or demonstrate fluency. Learning language syntax and basic semantics is like taking a 13-hour course in German: It prepares you for the task of ordering a bratwurst, but not for going to Germany to make a living, and certainly not for getting a job as a German language journalist or poet. The difference is in learning the idioms of the language. For example, there is nothing in C itself that establishes

while (*cp1++ = *cp2++);

as a fundamental building block, but a programmer unfamiliar with this construct would not be perceived as a fluent C programmer.

In programming, as in natural language, important idioms underly the suitability and expressiveness of linguistic constructs even in everyday situations. Good idioms make the application programmer's job easier, just as idioms in any language enrich communication. Programming idioms are reusable "expressions" of programming semantics, in the same sense that classes are reusable units of design and code. Simple idioms (like the while loop above) are notational conven