Frais de port
pour les particuliers
à partir de 50 euros
(France métropolitaine uniquement)
C++ PROGRAMMING LANGUAGE SPECIAL EDITION
|Editeur :||ADDISON WESLEY
|Nbre de pages :||1020
|Prix public :||75.00 € ttc
|Notre prix :||71.25 € ttc (-5%)
|Vous économisez :||3.75 €
|Disponibilité :||Livraison sous 2 à 10 jours ouvrables.
One book has always set the standard for C++
programmers: The C++ Programming Language, by Bjarne Stroustrup,
the Bell Laboratories developer who created C++.
Now, Stroustrup has updated this classic with clarifications based on
reader feedback and new information in two
brand-new appendices on ISO/ANSI C++: internationalization and
exception safety. This makes The C++ Programming
Language: Special Edition the only book with authoritative
coverage of every important element of C++.This
book brings the authoritative perspective of the creator of C++ to
everything from the core language through basic
development techniques, the Standard Library, and effective
program design. This new edition's updated coverage
of Standard C++ locales enables developers to build code that
can easily be customized for any market worldwide.
Its coverage of exception safety allows programmers to take
advantage of the standard library's support for
more reliable code.
The author, Bjarne Stroustrup (firstname.lastname@example.org)
, May 22, 1998 What to expect "The C++ Programming
Language (3rd Edition)" is aimed at programmers
with some experienced and a wish to master C++. It is not aimed for
non-programmers trying to learn their first
programming language or casual programmers trying to gain a superficial
understanding of C++ as fast as possible.
Consequently, this book focuses on concepts and techniques and goes to
some pain to be complete and precise.
The presentation is centered on small program
fragments embedded in the text. The examples are chosen to illustrate
fundamental programming techniques rather than to
be immediately useful as part of a reader's code. The language
used is "pure C++" without vendor-specific
extensions or system dependencies. Look to your vendor documentation for
examples of how to deal with system-specific
resources. To get the program fragments from the text to work, expect to
have to add "scaffolding" in the form of header
files, driver code (e.g. a main()), etc., and to supply parts of an
example that I didn't need for the discussion of a
concept or technique.
To illustrate the full language and an extensive
range of techniques, I use language features available only in the
latest compiler releases. One purpose of the book
is to demonstrate the utility of facilities that at the time of writing
were unavailable or unavailable to most people. At
the time of writing, no compiler was capable of compiling every
example in the book and no standard library
implementation supported every facility described. For years to come,
use of advanced features will cause some problems
to readers who use older compilers. I encourage upgrading to
implementations that support full ISO C++, but
understand that practical issues often force production code to be
written in a language subset determined by older
This use of language features contrasts to the
common sensible approach of maximizing the appeal of a book by
describing only a subset of language features and
only techniques that! work with all common implementations. One
benefit of my approach is that it gives the book a
much longer lifespan (the first and second editions each had a useful
life as up-to-date descriptions of C++ and its use
of about six years; I expect the useful life of the third edition to be
This book can be used as a user-level reference for
language features, standard library facilities, and programming
techniques. However, it is not a reference manual
or the standards text. If you need 100% precise and complete
information you'll have to consult the text of the
ISO C++ standard. Be warned that the standard is not a tutorial and it
takes considerable effort and skill to extract
answers from it. One aim in writing "The C++ Programming Language" has
been to approximate the ideal that "if the answer
isn't there, you'd better avoid the feature."
I take a very aggressive approach to "book
maintenance." When I receive comments about bugs, typos, inaccuracies,
possible ambiguities, omissions, suggested
improvements, etc., I try to make improvements and post errata
documenting what I've done. Much errata are
improvements rather than fixes of errors. Thus, the amount of errata
a valid measure of errors. If you count omissions,
inaccuracies, and ambiguities as errors, even the 1st printing of my
3rd edition had fewer errors than most books. By
now, I'm confident enough to offer a bounty for each error found.
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 notjust 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
succeeded at tasks I hadn't even dreamt of.
This book introduces standard C++t 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 namespaces, 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
About a third of the information in the second
edition of this book came from the first. This third edition is the
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 than 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. t
ISO/1EC 14882, Standard for the C++ Programming Language.
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 emulating
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
reader gain new insights and become a better
programmer and designer.
In addition to the people mentioned in the
acknowledgement sections of the first and second editions, I would like
thank Matt Austern, Hans Boehm, Don Caldwell,
Lawrence Crowl, Alan Feuer, Andrew Forrest, David Gay, 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. Without their help and suggestions, this
book would have been harder to understand, contained more errors,
been slightly less complete, and probably been a
little bit shorter.
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
mention anyone, so I'd like to especially mention
Mike Ball, Dag BrUck, Sean Corfield, Ted Goldstein, Kim Knuttila,
Andrew Koenig, Jos6 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
thank a few of those who helped: Dave Abrahams,
Matt Austem, Jan Bielawski, Janina Mincer Daszkiewicz, Andrew
Koenig, Dietmar Kahl, Nicolai Josuttis, Nathan
Myers, Paul E. Sevinp, Andy Tenne-Sens, Shoichi Uchida, Ping-Fai
(Mike) Yang, and Dennis Yelle.
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.
Table of Contents
Preface to Second Edition
Preface to First Edition
Chapter 1: Notes to the Reader
Chapter 2: A Tour of C++
Chapter 3: A Tour of the Standard Library
Chapter 4: Types and Declarations
Chapter 5: Pointers, Arrays, and Structures
Chapter 6: Expressions and Statements
Chapter 7: Functions
Chapter 8: Namespaces and Exceptions
Chapter 9: Source Files and Programs
Chapter 10: Classes
Chapter 11: Operator Overloading
Chapter 12: Derived Classes
Chapter 13: Templates
Chapter 14: Exception Handling
Chapter 15: Class Hierarchies
Chapter 16: Library Organization and Containers
Chapter 17: Standard Containers
Chapter 18: Algorithms and Function Objects
Chapter 19: Iterators and Allocators
Chapter 20: Strings
Chapter 21: Streams
Chapter 22: Numerics
Chapter 23: Development and Design
Chapter 24: Design and Programming
Chapter 25: Roles of Cases
App: A: The C++ Grammar
App: B: Compatibility
App: C: Technicalities
Table des matières :
1. Notes to the Reader.
2. A Tour of C++.
3. A Tour of the Standard Library.
I. BASIC FACILITIES.
4. Types and Declarations.
5. Pointers, Arrays, and Structures.
6. Expressions and Statements.
8. Namespaces and Exceptions.
9. Source Files and Programs.
II. ABSTRACTION MECHANISMS.
11. Operator Overloading.
12. Derived Classes.
14. Exception Handling.
15. Class Hierarchies.
III. THE STANDARD LIBRARY.
16. Library Organization and Containers.
17. Standard Containers.
18. Algorithms and Function Objects.
19. Iterators and Allocators.
IV. DESIGN USING C++.
23. Development and Design.
24. Design and Programming.
25. Roles of Classes.
A. The C++ Grammar.
E. Standard-Library Exception Handling.