The C++ Programming Language: Special Edition
|
| List Price: | $84.99 |
| Price: | $54.56 & eligible for FREE Super Saver Shipping on orders over $25. Details |
Availability: Usually ships in 24 hours
Ships from and sold by Amazon.com
74 new or used available from $32.48
Average customer review:Product Description
com/~bs/) have been added. The result is complete, authoritative coverage of the C++ language, its standard library, and key design techniques. Based on the ANSI/ISO C++ standard, The C++ Programming Language provides current and comprehensive coverage of all C++ language features and standard library components.
For example:
abstract classes as interfaces class hierarchies for object-oriented programming templates as the basis for type-safe generic software exceptions for regular error handling namespaces for modularity in large-scale software run-time type identification for loosely coupled systems the C subset of C++ for C compatibility and system-level work standard containers and algorithms standard strings, I/O streams, and numerics C compatibility, internationalization, and exception safety
Bjarne Stroustrup makes C++ even more accessible to those new to the language, while adding advanced information and techniques that even expert C++ programmers will find invaluable.
Product Details
- Amazon Sales Rank: #26114 in Books
- Published on: 2000-02-11
- Original language: English
- Number of items: 1
- Binding: Hardcover
- 1030 pages
Editorial Reviews
Amazon.com Review
This classic work shows a care and understanding of C++ that only Bjarne Stroustrup, the designer of the language, can achieve. It also conveys the punctilious and sometimes suffocating detail that only Stroustrup would desire to communicate. The novice programmer will have difficulty distinguishing between the essential and the dispensable material. However, experienced C++ programmers will appreciate the reference manual portion of the book, which contains an exact definition of C++ that even numerous examples cannot express. Stroustrup's book has several chapters on classes and the reference manual component of the book contains the complete grammar of classes. This is a book that every experienced C++ programmer needs to own.
Review
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
From the Inside Flap
Programming is understanding.
-- Kristen Nygaard
I find using C++ more enjoyable than ever. C++'s support for design and programming has improved dramatically over the years, and lots of new helpful techniques have been developed for its use. However, C++ is not just fun. Ordinary practical programmers have achieved significant improvements in productivity, maintainability, flexibility, and quality in projects of just about any kind and scale. By now, C++ has fulfilled most of the hopes I originally had for it, and also succeeded at tasks I hadn't even dreamt of.
This book introduces standard C++* and the key programming and design techniques supported by C++. Standard C++ is a far more powerful and polished language than the version of C++ introduced by the first edition of this book. New language features such as name spaces, exceptions, templates, and run-time type identification allow many techniques to be applied more directly than was possible before, and the standard library allows the programmer to start from a much higher level than the bare language.
About a third of the information in the second edition of this book came from the first. This third edition is the result of a rewrite of even larger magnitude. It offers something to even the most experienced C++ programmer; at the same time, this book is easier for the novice to approach that its predecessors were. The explosion of C++ use and the massive amount of experience accumulated as a result makes this possible.
The definition of an extensive standard library makes a difference to the way C++ concepts can be presented. As before, this book presents C++ independently of any particular implementation, and as before, the tutorial chapters present language constructs and concepts in a "bottom up" order so that a construct is used only after it has been defined. However, it is much easier to use a well-designed library than it is to understand the details of its implementation. Therefore the standard library can be used to provide realistic and interesting examples well before a reader can be assumed to understand its inner workings. the standard library itself is also a fertile source of programming examples and design techniques.
This book presents every major C++ language feature and the standard library. It is organized around language and library facilities. However, features are presented in the context of their use. That is, the focus is on the language as the tool for design and programming rather than on the language in itself. This book demonstrates key techniques that make C++ effective and teaches the fundamental concepts necessary for mastery. Except where illustrating technicalities, examples are taken from the domain of systems software. A companion, The Annotated C++ Language Standard, presents the complete language definition together with annotations to make it more comprehensible.
The primary aim of this book is to help the reader understand how the facilities offered by C++ support key programming techniques. The aim is to take the reader far beyond the point where he or she gets code running primarily by copying examples and emulation programming styles from other languages. Only a good understanding of the ideas behind the language facilities leads to mastery. Supplemented by implementation documentation, the information provided is sufficient for completing significant real-world projects. The hope is that this book will help the reader gain new insights and become a better programmer and designer.
Acknowledgments
In addition to the people mentioned in the acknowledgment section of the first and second editions, I would like to thank Matt Austern, Hans Boehm, Don Caldwell, Lawrence Crowl, Alan Feuer, Andrew Forrest, Tim Griffin, Peter Juhl, Brian Kernighan, Andrew Koenig, Mike Mowbray, Rob Murray, Lee Nackman, Joseph Newcomer, Alex Stepanov, David Vandevoorde, Peter Weinberger, and Chris Van Wyk for commenting on draft chapters of this third edition.
I would also like to thank the volunteers on the C++ standards committees who did an immense amount of constructive work to make C++ what it is today. It is slightly unfair to single out individuals, but it would be even more unfair not to mention anyone, so I'd like to especially mention Mike Ball, Dag Brueck, Sean Corfield, Ted Goldstein, Kim Knutilla, Andrew Koenig, Josee Lajoie, Dmitry Lenkov, Nathan Myers, Martin O'Riordan, Tom Plum, Jonathan Shopiro, John Spicer, Jerry Schwarz, Alex Stepanov, and Mike Vilot, as people who each directly cooperated with me over some part of C++ and its standard library.
After the initial printing of this book, many dozens of people have mailed me corrections and suggestions for improvements. I have been able to accommodate many of their suggestions within the framework of the book so that later printings benefitted significantly. Translators of this book into many languages have also provided many clarifications. In response to requests from readers, I have added appendices D and E. Let me take this opportunity to thank a few of those who helped: Dave Abrahams, Matt Austern, Jan Bielawski, Janina Mincer Daszkiewicz, Andrew Koenig, Dietmar Kuehl, Nicolai Josuttis, Nathan Myers, Paul E. Sevinc, Andy Tenne-Sens, Shoichi Uchida, Ping-Fai (Mike) Yang, and Dennis Yelle.
Bjarne Stroustrup
Murray Hill, New Jersey
0201700735P04062001
Customer Reviews
Fundamental Book, but should be last read
This book is written in the way creator Bjarne Stroustrup sees his language and how his language should be used. This book is not thin on material for the intermediate to advanced C++ software engineer.
One word in warning to potential buyers: You better be sharp with your STL skills before reading this book. Stroustrup writes his implementations around the STL which is not covered from a tutorial style in this book before he introduces it, which tells you that he meant for this book strictly as a reference not as a readers book. This critism is constructive, not disruptive, but I have been programming in standard ANSI/ISO C++ for 9 years, this book is best understood if you read the following first, if not, this book for even an itermediate C++ program cannot be digested to the fullest and you will reading this book fooling yourself of how much knowledge you have attained, when in reality, all that you have accomplished is reading this book so that you can say that you read Stroustrup, which is foolish, so read these first:
1) C++ Primer 3rd Edition: Stanley Lippman Addison Wesley Books Strengths: If you are starting out with C++ with no C++ experience, this book covers every facet beginner to advanced topics, such as fundamental classes, class design covering nested class and intense class scoping rules, which Stroustrups book does not cover, there is no reference to nested classes and access privileges with nested classes with Stroustrup's book. The chapters on function templates and another chapter on class templates are the most complete and thorough beyound what you need to know for richness is explained brilliantly and better than scant coverage in Stroustrup's. The C++ Primer is long though, so if you want to learn C++ the right way, skills like this take time and effort, there is no free lunches here, but this is regarded as the best C++ book regardless of level: starter, intermediate, or very advanced master. It also serves a robust reference. This books covers the STL containers well in its own chapter and also two chapter on all the STL algoritms, plus an extended alphabetically ordered repitition in type out of the book and compile form. This book is not for the faint hearted or lazy, if you are ambitious, this book will make you a C++ king. Also get its companion C++ Answer book with all answers to the books exercise questions from author Clovis L. Tondo, also an Addison Wesley title.
2) C++ Algorithms 3rd Edition by Robert Sedgewick also Addison Wesley books. Why? You seriouly have to know your date structure skills, linked lists, stacks, trees, queues and its accompanying algoritms, such as: searching and sorting, merging and merge sorting. Stroustrups books assumes you know how these all come together, if you do not believe this, then look at his stark and algorithmically complex data structure examples, once this is read everything will be a piece of cake, believe this, do not fool yourself.
3) The C++ Standard Library Tutorial and Reference from Nicolai Josuttis, from Addison Wesley also, this book is the defacto bible on mastering the STL, which covers brilliant chapters on containers( vectors, lists, maps, sets, deques, and much more ). It also covers a huge chapter on standard IO streams, at least over 150 pages on this alone, as well a masterful chapter on STL strings. This should be read after Sedgewick's book. This book like all Addison Wesley books, is of the highest qualitiy and caliber of writing making it fun to read and plenty of type out of the book samples to bang in the concept. This books brilliantly also tutors you in function objects, iterators and all its variants, and STL algorithms.
Last Word: Stroustrups book is definite worth in purchase and you cannot consider yourself a C++ software engineer, or C++ Software/Systems architect without having this book in your library, but patience and read books 1,2, and three first in that order. And wheh you do the above, and are ready to read Stroustup's book, one reminder, you must know your templates, know your templates, know your templates, also get the accompanying answer book, C++ Solutions, by Vandervoode also an Addison Wesley title.
Good Fortune.
Excellent, useful, complete. Requires interest and effort.
This book is inappropriate for a person who is new to programming. It is even more inappropriate for a quick-and-easy programmer who wants to learn practical skills as quickly as possible but lacks the interest and desire to achieve a high level of skill.
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.
Are You Experienced?
Bjarne Stroustrup's THE C++ PROGRAMMING LANGUAGE is ideal for those potential buyers who already know 75% of what is written in the book. But please note that this is not necessarily a put-down or a bad thing. This book is reference material for people who are already familiar with the concepts and syntax of C++. If you're looking to learn C++ from scratch, then run far and run quickly away from this book. On the other hand, if you're an experienced coder who's looking to remember specific details, or an intermediate who's looking for some nitty-gritty information, then this is a highly recommended reference book.
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.






