or
Sign in to turn on 1-Click ordering.
or
Amazon Prime Free Trial required. Sign up when you check out. Learn More
Sell Back Your Copy
For a $34.03 Gift Card
Trade in
More Buying Choices
Have one to sell? Sell yours here
The C++ Programming Language: Special Edition
 
 
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.

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

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

List Price: $89.99
Price: $61.37 & this item ships for FREE with Super Saver Shipping. Details
You Save: $28.62 (32%)
  Special Offers Available
o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o
In Stock.
Ships from and sold by Amazon.com. Gift-wrap available.
Want it delivered Monday, January 30? Choose One-Day Shipping at checkout. Details
Textbook Student FREE Two-Day Shipping for Students. Learn more

Formats

Amazon Price New from Used from
Hardcover $61.37  
Paperback, Import --  

Book Description

0201700735 978-0201700732 February 11, 2000 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.




Special Offers and Product Promotions

  • Buy $50 in qualifying physical textbooks, get $5 in Amazon MP3 Credit. Here's how (restrictions apply)

Frequently Bought Together

Customers buy this book with Effective C++: 55 Specific Ways to Improve Your Programs and Designs (3rd Edition) $36.54

The C++ Programming Language: Special Edition + Effective C++: 55 Specific Ways to Improve Your Programs and Designs (3rd Edition)


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: 9.5 x 7.7 x 1.7 inches
    • Shipping Weight: 3.8 pounds (View shipping rates and policies)
    • Average Customer Review: 4.4 out of 5 stars  See all reviews (109 customer reviews)
    • Amazon Best Sellers Rank: #29,866 in Books (See Top 100 in Books)

     

    Customer Reviews

    109 Reviews
    5 star:
     (73)
    4 star:
     (15)
    3 star:
     (14)
    2 star:
     (2)
    1 star:
     (5)
     
     
     
     
     
    Average Customer Review
    4.4 out of 5 stars (109 customer reviews)
     
     
     
     
    Share your thoughts with other customers:
    Most Helpful Customer Reviews

    612 of 628 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
    This review is from: The C++ Programming Language: Special Edition (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.

    Help other customers find the most helpful reviews 
    Was this review helpful to you? Yes No


    62 of 66 people found the following review helpful:
    5.0 out of 5 stars One of the Best & Most Completed C++ Books Ever!, April 14, 2000
    Amazon Verified Purchase(What's this?)
    This review is from: The C++ Programming Language: Special Edition (Hardcover)
    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!

    Help other customers find the most helpful reviews 
    Was this review helpful to you? Yes No


    96 of 108 people found the following review helpful:
    3.0 out of 5 stars An overrated, disorganized book completely unsuited as a learning text and only mildly useful as a reference, August 27, 2006
    By 
    This review is from: The C++ Programming Language: Special Edition (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.
    Help other customers find the most helpful reviews 
    Was this review helpful to you? Yes No

    Share your thoughts with other customers: Create your own review
     
     
     
    Most Recent Customer Reviews











    Only search this product's reviews



    Inside This Book (learn more)
    First Sentence:
    This book consists of six parts: Introduction: Chapters 1 through 3 give an overview of the C++ language, the key programming styles it supports, and the C++ standard library. Read the first page
    Key Phrases - Statistically Improbable Phrases (SIPs): (learn more)
    ival slider, checked iterators, unary member, nothrow nothrow, standard library facilities, static cons, class std, const throw, global locale, standard library string, void operator delete, library implementer, allocator type, standard library containers, iterator pos, standard allocator, standard library exception, standard library algorithms, different translation units, iterator traits, standard facets, nonmember functions, char pop, typedef typename, overload resolution rules
    Key Phrases - Capitalized Phrases (CAPs): (learn more)
    New Jersey, Bjarne Stroustrup, Englewood Cliffs, The Annotated, Eric Bloodaxe, Grady Booch, Jim Dandy
    New!
    Books on Related Topics | Concordance | Text Stats
    Browse Sample Pages:
    Front Cover | Table of Contents | First Pages | Index | Back Cover | Surprise Me!
    Search Inside This Book:




    What Other Items Do Customers Buy After Viewing This Item?


    Tags Customers Associate with This Product

     (What's this?)
    Click on a tag to find related items, discussions, and people.
     
    (18)
    (7)

    Your tags: Add your first tag
     

    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

    Customer Discussions

    This product's forum
    Discussion Replies Latest Post
    No discussions yet

    Ask questions, Share opinions, Gain insight
    Start a new discussion
    Topic:
    First post:
    Prompts for sign-in
     


    Active discussions in related forums
    Search Customer Discussions
    Search all Amazon discussions
       
    Related forums





    Look for Similar Items by Category


    Look for Similar Items by Subject