or
Sign in to turn on 1-Click ordering
Sell Us Your Item
For a $15.47 Gift Card
Trade in
More Buying Choices
Have one to sell? Sell yours here
Tell the Publisher!
I'd like to read this book on Kindle

Don't have a Kindle? Get your Kindle here, or download a FREE Kindle Reading App.
Sorry, this item is not available in
Image not available for
Color:
Image not available

To view this video download Flash Player

 

The C++ Programming Language: Special Edition [Hardcover]

Bjarne Stroustrup
4.4 out of 5 stars  See all reviews (116 customer reviews)

Buy New
$59.48 & FREE Shipping. Details
Rent
$23.66
Only 16 left in stock (more on the way).
Ships from and sold by Amazon.com. Gift-wrap available.
In Stock.
Want it tomorrow, May 24? Choose One-Day Shipping at checkout. Details
Free Two-Day Shipping for College Students with Amazon Student

Formats

Amazon Price New from Used from
Hardcover $59.48  
Paperback --  
Shop the new tech.book(store)
New! Introducing the tech.book(store), a hub for Software Developers and Architects, Networking Administrators, TPMs, and other technology professionals to find highly-rated and highly-relevant career resources. Shop books on programming and big data, or read this week's blog posts by authors and thought-leaders in the tech industry. > Shop now

Book Description

February 11, 2000 0201700735 978-0201700732 3

More than three-quarters of a million programmers have benefited from this book in all of its editions

Written by Bjarne Stroustrup, the creator of C++, this is the world's most trusted and widely read book on C++.

For this special hardcover edition, two new appendixes on locales and standard library exception safety (also available at www.research.att.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.




Frequently Bought Together

The C++ Programming Language: Special Edition + Effective C++: 55 Specific Ways to Improve Your Programs and Designs (3rd Edition) + Accelerated C++: Practical Programming by Example
Price for all three: $135.82

Buy the selected items together


Editorial Reviews

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

From the Back Cover

Written by Bjarne Stroustrup, the creator of C++, this is the world's most trusted and widely read book on C++.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

    • Hardcover: 1030 pages
    • Publisher: Addison-Wesley Professional; 3 edition (February 11, 2000)
    • Language: English
    • ISBN-10: 0201700735
    • ISBN-13: 978-0201700732
    • Product Dimensions: 7.7 x 1.6 x 9.4 inches
    • Shipping Weight: 3.8 pounds (View shipping rates and policies)
    • Average Customer Review: 4.4 out of 5 stars  See all reviews (116 customer reviews)
    • Amazon Best Sellers Rank: #162,644 in Books (See Top 100 in Books)

    More About the Author

    Bjarne Stroustrup is the designer and original implementer of C++.
    He is a founding member of the ISO C++ standards committee and a major contributor to C++11.
    He worked at Bell Labs and AT&T Labs and is now a professor at Texas A&M University.
    He is a member of the USA National Academy of Engineering, an ACM Fellow and an IEEE Fellow.
    His publication list is as long as your arm.

    Customer Reviews

    Great book, and I believe an absolute must for any serious C++ programmer. Nathanbw  |  41 reviewers made a similar statement
    The code in this book is to the point and shows exactly what it means to in a very clear way. Rusty Shackleford  |  22 reviewers made a similar statement
    This is one of the many books you will need. 20thCenturyBoy  |  14 reviewers made a similar statement
    Most Helpful Customer Reviews
    655 of 672 people found the following review helpful
    5.0 out of 5 stars Fundamental Book, but should be last read April 11, 2001
    By A Customer
    Format:Hardcover
    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.

    Was this review helpful to you?
    65 of 69 people found the following review helpful
    5.0 out of 5 stars One of the Best & Most Completed C++ Books Ever! April 14, 2000
    Format:Hardcover|Amazon Verified Purchase
    From my years of being a C++ programmer, this is definitely the one of the best reference books I've ever used. This book cover all the aspects of C++, one of the most complicated programming language, with a nice detail of everything, including STL (Standard Template Library, the C++ new standard library).

    However, this book is, like all of the previous editions, NOT a language/programming tutorial. To read this book, you will need tons of C++ & OOP knowledge, even if you are an ace C programmer (since C is quite different from C++ in "The Way of Thinking"). Especially, if you are a novice, please read one or two "good" primer book before coming to this one, otherwise you will get lost easily. (Believe me, it's happened to me before when I tried to read the 2nd edition).

    Moreover. In this edition, the author, Bjarne Stroustrup, added 2 more appendixes on "locales" and "standard library exception safety", which would make this book even more useful and more complete than any previous editions. And would make this become "A Bible" for C++ Programmaing Language.

    If you are a "serious" C++ programmer (or wannabe), you can't get anything better than this. This is a MUST!

    Comment | 
    Was this review helpful to you?
    120 of 139 people found the following review helpful
    Format:Hardcover
    Over the last two years, I have come to love the C++ language despite all its quirks and horrendous syntax. I view its primary creator and the C++ expert community with much awe . I love the STL, Boost and Blitz libraries for their elegance in design and ease of use. Considering my prior programming experience was on the uncomplicated Java platform, this is something. :-)

    IMHO this book does not live up to the language. Being the recommended text, this book has had the very unfortunate effect of scaring away a lot of intelligent programmers from the C++ world. I am an intermediate programmer who had a fair command over C and Java and who had done his share in building enterprise software. Despite my best efforts, I was unable to learn C++ from this book. I struggled a couple of times and then threw this book away. Learning tensor calculus is easier than learning C++ from this book! When I did get around to having a command over C++, I found this book boring, longwinded, with very little value-add for all the reading time invested.

    I am highly amused by the top-rated review given for this book which states that one must first go through the 'C++ primer', 'C++ algorithms' by Sedgewick and 'the C++ standard library' by Josuttis before attempting to study 'The C++ programming language'. The fact of the matter is that if you have gone through all of those, there is very little to learn from Stroustrup's text apart from nodding at most of the passages - you are simply better off skipping it.

    Whether you are a newbie or an experienced programmer in another language/platform, there isn't much value gained in reading this book. There are better C++ texts out there. My view is that this book should have been organized better. As a learning text, there is way too much correlation between topics that the reader is yet to study and topics that the reader is struggling to learn. As a reference, there is no direct path or organization to achieve a given objective or follow a principle. Key principles and guidelines are scattered across chapters.

    Here is my gameplan on how to learn C++:

    - First you need to have some experience in programming. C++ as a first language is a strict no-no. Your results in C++ come after a fair degree of involvement and learning, and if you have just begun to program then you need immediate results to keep you motivated. (Unless you are an uber-geek - I am not one of those)

    - You *need* to have some level of command over C. Yes, indeed you do! All that hoop-la given by various C++ faqs (including Stroustrup) about how a knowledge of C is not necessary to learn C++ is simply wrong. You may not use C features in proper, object-oriented C++, but in order to understand C++ you need to know how C works. Structures and pointers are an absolute must. In the real world, no library or application is pure C++. Everything dives into C at some point or other and you don't want to scratch your head at the time.

    - Reading diverges now, depending on whether you are an experienced programmer comfortable with OO or a newbie with a modicum of programming under his/her belt. 'The C++ primer ' is a good comprehensive step-by-step book for newbies. But any experienced programmer will yawn through most of it. 'Essential C++' by Lippman is the best book out there to get up to speed with C++. You wont understand 100% of everything, but you will be able to do achieve something with the language in the correct, idiomatic way.

    - Next would come 'Effective C++ and more Effective C++' by Scott Meyers. This is arguably the best C++ book written. You learn nearly 95% of all there is to idiomatic C++ and you also learn a lot on engineering and design patterns. You learn what to avoid and what to use from the language. I kissed this book. It made many things clear as daylight for me!

    - At this point in time, you would be comfortable with nearly all aspects of the language apart from templates. Thats fine. No other language has anything close to C++ templates. Java Generics is a laugh compared to it. You dont need to be a template expert right now. Templates are a world of their own and are extensively covered in 'C++ templates - a complete guide'. Just read the first two parts of that book to sort out any pending comprehension issues.

    - Now would come the time to get familiar with the standard library. There isn't much choice here. Nicolai Josuttis has the only modern book out (AFAIK) on the C++ standard library and its fairly readable in a linear manner.

    - Coming from a Java background with its rich heritage of libraries, I found the STL unsuitable for actual development. Boost is a god-send! Boost makes your mouth water. Grab boost and go through the docs for its core libraries. shared_ptr is an absolute must! Say good-bye to painful memory management.

    Nobody seems to tell you about supplementary issues like an IDE and build system. If you have Visual C++ and are on the windows platform, well and good. If not, I suggest using an IDE like KDevelop. If you are a VIMmer (like me), take the time out to learn a good build system like CMake or Scons. It takes the drudgery away and allows you to concentrate on your programming.
    Was this review helpful to you?
    Most Recent Customer Reviews
    5.0 out of 5 stars A gift for my nephew
    My nephew loves programming and requested this book for Christmas. He loves it and can't wait for C+++ to come out.
    Published 2 months ago by SandyB
    5.0 out of 5 stars A amazing learning book
    I am learning a lot from this book, although I recommend you skim through and learn what you want instead of reading straight through that would take a while seeing hows it a 1000... Read more
    Published 5 months ago by Anthony
    1.0 out of 5 stars Incomprehensible
    DO NOT BUY THIS BOOK!!!.
    It is very poorly written. It is almost incomprehensible. The author simply does not know how to explain. Read more
    Published 8 months ago by Dearth Verbose
    5.0 out of 5 stars Excellent
    fast shipping, good book for anyone use c++, I am a physics graduate student programming everyday, but I never took a c++ course before, (just for C), so this book is also good for... Read more
    Published 9 months ago by Roger
    5.0 out of 5 stars Excellent book as a tutorial
    This book is excellent as a tutorial. I've programmed before in commercial languages for research, but had no experience with C or C++. Read more
    Published 9 months ago by Anton Khabbaz
    5.0 out of 5 stars Excellent for experienced C++ developers
    I had been working with C++ for 4 years before I moved to C#. After 6 years of C# development I wanted to refresh my C++ knowledge so I took this book. It was great choice. Read more
    Published 13 months ago by Timmy_A
    5.0 out of 5 stars The best C++ book ever
    This book, explains all the important features of the language in a way that not only explains the features but really give you an insight into how should you program using C++
    Published 13 months ago by Roberto
    5.0 out of 5 stars The authoritative guide
    You can`t get a better explanation on what the C++ language is, than from the creator of C++ himself. Well-written, for the serious C++ developer.
    Published 16 months ago by Hektor Konomi
    5.0 out of 5 stars The C++ bible
    The book "The C++ Programming Language" was written by C++'s author, Bjarne Stroustrup, so it is the definitive book about C++. It is written in the classic Unix book style, i.e. Read more
    Published 18 months ago by Nadav Har'El
    5.0 out of 5 stars The best of the best!
    If your are an experienced C++ developer, this is a MUST HAVE book! Everything y pretty well explained. Read more
    Published 18 months ago by petter1890
    Search Customer Reviews
    Only search this product's reviews




    What Other Items Do Customers Buy After Viewing This Item?


    Sell a Digital Version of This Book in the Kindle Store

    If you are a publisher or author and hold the digital rights to a book, you can sell a digital version of it in our Kindle Store. Learn more

    Forums

    There are no discussions about this product yet.
    Be the first to discuss this product with the community.
    Start a new discussion
    Topic:
    First post:
    Prompts for sign-in
     



    So You'd Like to...



    Look for Similar Items by Category