The C++ Programming Language (Anglais) Broché – 20 juin 1997
Les clients ayant acheté cet article ont également acheté
Descriptions du produit
Présentation de l'éditeur
- Written by the inventor of the language, the book is the defining, classic text on the language that has become central to software development over the past five years. This third edition incorporates additions and changes on a major scale. In particular, the new edition is based on the ANSI/ISO C++ final draft with its many new language features - templates, exceptions, namespaces, and run-time type identification, to name a few - in addition to the C++ Standard Template Library that has revolutionized C++ development.
- Throughout, the book does far more than merely describe every element of the language. The focus is on showing how the language is used as a tool for design and programming, and teaching the basic concepts programmers need to master C++. With this third edition, Stroustrup has made the book even more accessible to those new to the language while adding information and techniques that even expert C++ programmers will find invaluable.
Quatrième de couverture
NOTE: Customers of this book, Errata for page 833 is now available in pdf form and can be downloaded from this page.
This is a complete rewrite of the most widely read and most trusted book on C++. Based on the ANSI/ISO C++ final draft, this book covers the C++ language, its standard library, and key design techniques as an integrated whole.
The C++ Programming Language provides comprehensive coverage of 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
With this third edition, Stroustrup makes C++ even more accessible to those new to the language while adding information and techniques that even expert C++ programmers will find invaluable.
Aucun appareil Kindle n'est requis. Téléchargez l'une des applis Kindle gratuites et commencez à lire les livres Kindle sur votre smartphone, tablette ou ordinateur.
Pour obtenir l'appli gratuite, saisissez votre adresse e-mail ou numéro de téléphone mobile.
Détails sur le produit
En savoir plus sur l'auteur
Dans ce livre(En savoir plus)
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. Lire la première page
Couverture | Copyright | Table des matières | Extrait | Index | Quatrième de couverture
Quels sont les autres articles que les clients achètent après avoir regardé cet article?
Commentaires en ligne
Meilleurs commentaires des clients
Commentaires client les plus utiles sur Amazon.com (beta)
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.
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, 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!
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.