![]() |
| ||||||||||||
|
Amazon.com Textbooks Store
Shop the Amazon.com Textbooks Store and save up to 70% on textbook rentals, 90% on used textbooks and 60% on eTextbooks. |
|
There is a newer edition of this item:
|
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++.
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
Product Details
Would you like to update product info or give feedback on images? |
The writing is meticulous and often obscure. But Stroustrup packs in a lot of detail into every page. The example code is short and to the point. He assumes that if you don't get what he's talking about the first time, then further examples aren't going to help; and most of the time this assumption is justified, as his terse code manages to convey everything that it needs to.
You really do need to have experience with C++ to understand a lot of his examples though, as often he will casually mention a concept or function that he won't get around to defining for another few hundred pages. After all, most of the features in C++ interact heavily with other functions, so it's not really possible to explain some things without explaining their relationships (even if they are relating to things that the text has not yet brought up). But, as I said, this is reference material, and such conventions are allowable and, at times, encouraged. I am much happier with a book like this that gives me all of the detail necessary than an introductory book that would only offer simplistic explanations in the beginning while holding out for the details towards the end.
The book covers virtually every major aspect of the C++ programming language. While everything is richly explained, I find the sections on the standard containers and their iterators to be particularly enlightening. There is a lot of overlap inherent in these concepts, but each individual portion is clearly and unambiguously explained. The sections on pointers, classes, and inheritance are similarly helpful. But, to be honest, there is no reason for me to list everything that the book explains, because it literally contains everything; if it's not in the book, then in all likelihood it's not in the language either.
THE C++ PROGRAMMING LANGUAGE is a dense book and is packed to the gills with invaluable information and a fair bit of insight. As the inventor of the C++ language itself, Stroustrup is the closest person to the actual syntax, and short of reading the ISO spec, you simply won't find a more comprehensive tome on the subject. Remember, if you're a beginner, stay away. If you're experienced or you plan on being so, then you need to own this book today.
Bookshelves are overflowing with books for these two types of people. Instead of adding another title to that flood, Bjarne Stroustrup delivers a well-written, well-structured book that helps in a challenging area where good resources like this one are needed.
To those who dislike the writing style, I say "sorry, find another book." If you find the sentences hard to read, it is because they are written at a level of clarity and precision required by the concepts. If you find the concepts hard to understand, it is because they are presented with an insightfulness and thoroughness required by the academic/technical audience it is written for. This is neither your fault nor the author's: the book just wasn't written for you.
When I was learning C++, I also found this book difficult and challenging, but with effort I was able to read and understand it. The more I know, the more useful the book is to me, and the happier I am that I put in that effort. In a sense it is a complete reference not only to the language but also to the design paradigm(s) that inspired the language.
The concepts of OOP / generic programming aren't too bad at the surface level. But try and understand them enough to use them to construct complicated systems well, and they are genuinely hard. Every time I struggled with some aspect of the book, I realized once I understood it that Stroustrup had presented it in the best way possible. That's the best part of this book: you can trust that the author is guiding you from a position of knowledge and experience. But what else should we expect from the creator of C++? We are implicitly trusting him anyway by using his language.
However, this book is NOT a language/programming tutorial. To read this book, you might need tons of C++ & OOP knowledges, even if you are an ace C programmer. If you are a novice, please read any "good" primer book before coming to this one, or you will get lost easily.
If you are a C++ programmer, you can't get anything better than this! This is a MUST, and should be on all C++ programmers' shelf!
|