- Hardcover: 1030 pages
- Publisher: Addison-Wesley Professional; 3 edition (February 11, 2000)
- Language: English
- ISBN-10: 9780201700732
- ISBN-13: 978-0201700732
- ASIN: 0201700735
- Product Dimensions: 7.5 x 1.6 x 9.5 inches
- Shipping Weight: 3.9 pounds (View shipping rates and policies)
- Average Customer Review: 662 customer reviews
- Amazon Best Sellers Rank: #402,430 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.
The C++ Programming Language: Special Edition (3rd Edition) 3rd Edition
Use the Amazon App to scan ISBNs and compare prices.
There is a newer edition of this item:
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
In this brand-new third edition of The C++ Programming Language, author Bjarne Stroustrup, the creator of C++, presents the full specification for the C++ language and standard library, a spec that will soon become the joint ISO/ANSI C++ standard.
Past readers will find that the new edition has changed a great deal and grown considerably to encompass new language features, particularly run-time type identification, namespaces, and the standard library. At the same time, readers will recognize the lucid style and sensible advice that made previous editions so readable and enjoyable. Probably the biggest change is a substantial new section, well over 200 pages in length, covering the contents and design of the C++ standard library, the most important new feature of the C++ specification. The author has also added a substantial number of new exercises while keeping many from previous editions that have retained their value.
While The C++ Programming Language is not a C++ tutorial, strictly speaking, anyone learning the language, especially those coming from C, will greatly benefit from the clear presentation of all its elements. It is impossible to overstate the importance of this book for anyone who is serious about using C++. --This text refers to an out of print or unavailable edition of this title.
Read the entire review, including a chapter-by-chapter analysis of this book.
Bjarne Stroustrup's The C++ Programming Language, Third Edition (Addison-Wesley, 1997) has been available for several months. This work, by the creator of C++, is the definitive treatment of the subject and has been since its first edition in 1987. I must confess that I did not care for the first edition. I had expected a tutorial approach as elegant as the classic K&R white book. But then, K&R was about C, a programming language that supported a familiar programming model. The C++ programming model was new to most of us ten years ago, and Stroustrup's first edition was daunting, to say the least. Looking at it now, I find it far less so and much easier to read.
Comparing the first and third editions of The C++ Programming Language provides insight into how the C++ language has grown and changed in the past decade. The third edition has almost three times the number of pages and a slightly different organization. Whereas the first edition included a 67-page language reference manual at the end, the third edition includes only a language grammar section to represent formal language definition. This is appropriate. The ANSI/ISO Standard document, which is now the formal language and library definition, is itself about 750 pages long. Stroustrup plans to publish The Annotated C++ Language Standard (coauthored by Andrew Koenig, the ANSI C++ committee's Project Editor) sometime this year.
The third edition takes a tutorial approach with many of Stroustrup's personal programming philosophies. The author's explanations of how he uses language features provide examples for learning the behavior of those features. He also explains code idioms that some programmers routinely use but that he finds inappropriate.
As much as possible, the third edition reflects Standard C++. When small language features are found to be missing, particularly new ones, Stroustrup pledges to add them to a future printing...
This book is an essential addition to a C++ programmer's library. It is not for dummies, and it wouldn't be my first choice for an entry-level, self-help tutorial on C++ for beginning programmers. It is, however, an excellent textbook for programmers who are self-motivated and students who study under the watchful care of a skilled instructor. As an experienced C++ programmer, I find the book useful as a reference to language usage and behavior. The author invented the language and then stayed close to the standardization and innovation process for the duration, always maintaining a careful vigilance over the evolution of his brainchild. Consequently, this book serves, for those who do not care to pore over the ANSI/ISO document (or the promised annotated version), as the authority on the Standard C++ language, how it works, and how you should use it. -- Al Stevens, Dr. Dobb's Journal -- Dr. Dobb's Journal --This text refers to an out of print or unavailable edition of this title.
Top customer reviews
I really liked it's structure: there's a brief "Tour of C++" before the more detailed chapters. In this tour, you can see in a glance what C++11 offers for many programming tasks that's not present in earlier standards: variadic templates, static assertions, many concurrency primitives, a new uniform initialization syntax, initializer lists, range-for loop, new STL containers, etc.
After that, there are detailed chapters intended to cover all the details of all the language features and the STL. After seeing a lot of cool stuff in the tour, you are motivated enough to go through the detailed descriptions of everything written by the C++ creator himself.
But pay attention to the title: the book is about "The C++ Programming Language". It's not intended to instruct you about:
- How to program;
- How to write efficient, readable and/or modularized code using C++;
- How to use concurrency to enhance the performance of algorithms;
- How to design APIs (although the STL is a good example in many situations);
- What are the best tools (compiler, VCSs, build systems, IDEs, libraries) to develop C++ programs.
It's rather a hitchhiker's guide to C++.
The C++ Programming Language (3rd Edition) and C++ in a Nutshell are my two primary go-to references for day-to-day C++ programming (and stackoverflow of course). As a primarily-embedded C/C++ programmer for over 25 years, I don't read books like this cover-to-cover. Instead, I bounce around the book to explore topics, gain deeper insight, or refresh my memory on some obscure corner of the language. Having done that now for over a month, I've come to like this new edition. Typography-wise, the 4th edition is easier on the eyes, with better use of whitespace, liberal use of navy blue for keywords and program examples, and more tables and graphics than in the previous edition. This may sound trivial, but it's not--I find the improved layout makes this edition much more accessible as a reference than the more densely-printed 3rd edition.
This edition is a significant rewrite from the 3rd edition. Obviously, it contains a lot of new material covering the C++11 additions to the language. As you would expect, there are entire new chapters on concurrency and threads and processes. However, there are also significant expansions of previous topics. For example, the discussion of the iostream 'locale' facilities occupied a little more than one page in the 3rd edition; in the 4th edition 'locale' gets an entire chapter of its own, with a much greater discussion of facets, money, and the like. Concepts like RAII are now covered in detail. Overall, my impression is that Mr. Stroustrup attempted to expand topics that are of increasing prominence today, and for the most part succeeded. In addition, one of my favorite parts of the older edition, Mr. Stroustrup's lists of programming advice at the end of each chapter, are still there, revised and expanded as necessary. Sadly, what is missing are the old 3rd edition chapters on Development and Design, and Design and Programming. Not only were these sort of a condensed Peopleware: Productive Projects and Teams (3rd Edition) that I enjoyed reading, they also allowed the word 'moron' to appear in the index of the 3rd edition--a word that is now gone from the index of the 4th edition, but still applicable on many product teams :-)
My only complaint with this new 4th edition is that it truly does represent C++ 'moving on'. There is no delineation in the text between C++11 additions and the earlier language constructs. As Mr. Stroustrup mentions in the intro, this is a deliberate choice on his part to present C++ as an "integrated whole, rather than as a layer cake". The old 3rd edition Appendix B "Compatibility" is now Chapter 44, "Compatibility", and the list of changes is presented there. I would have preferred that Mr. Stroustrup would at least have put margin bars in those places where C++11 changes occurred. Not everyone is running the latest GNU desktop compiler; in the embedded world in particular change comes slowly, and some of the C++11 changes are subtle enough that you might occasionally believe an example would work until the compiler informs you otherwise.
Overall, I consider this an excellent reference to C++, more accessible than the previous edition, updated with the latest techniques, and with better coverage of contemporary topics. That said, I also intend to keep my 3rd edition around for a while longer, as a lot of the sections pertaining to dealing with older compilers and interfacing with older libraries did not make it to this new edition. As management likes to say: 'let them eat (layer) cake'.
In addition to syntax and semantics, the author often includes suggestions on style, approaches and design. Some of these are general programming suggestions, others relate to C++ specifically. All have been insightful, and the C++ suggestions have helped adapt the C++ paradigm.
For an experienced programmer taking on a new language (or newer versions of this language), this is a good choice. For someone new to programming, this would be a steep learning curve; a more tutorial-oriented, introductory book may be better.