Published by Addison-Wesley Professional (July 10, 2013) © 2013
Bjarne StroustrupThe new C++11 standard allows programmers to express ideas more clearly, simply, and directly, and to write faster, more efficient code. Bjarne Stroustrup, the designer and original implementer of C++, has reorganized, extended, and completely rewritten his definitive reference and tutorial for programmers who want to use C++ most effectively.
The C++ Programming Language, Fourth Edition, delivers meticulous, richly explained, and integrated coverage of the entire language—its facilities, abstraction mechanisms, standard libraries, and key design techniques. Throughout, Stroustrup presents concise, “pure C++11” examples, which have been carefully crafted to clarify both usage and program design. To promote deeper understanding, the author provides extensive cross-references, both within the book and to the ISO standard.
New C++11 coverage includes
- Support for concurrency
- Regular expressions, resource management pointers, random numbers, and improved containers
- General and uniform initialization, simplified for-statements, move semantics, and Unicode support
- Lambdas, general constant expressions, control over class defaults, variadic templates, template aliases, and user-defined literals
- Compatibility issues
Topics addressed in this comprehensive book include
- Basic facilities: type, object, scope, storage, computation fundamentals, and more
- Modularity, as supported by namespaces, source files, and exception handling
- C++ abstraction, including classes, class hierarchies, and templates in support of a synthesis of traditional programming, object-oriented programming, and generic programming
- Standard Library: containers, algorithms, iterators, utilities, strings, stream I/O, locales, numerics, and more
- The C++ basic memory model, in depth
This fourth edition makes C++11 thoroughly accessible to programmers moving from C++98 or other languages, while introducing insights and techniques that even cutting-edge C++11 programmers will find indispensable.
This book features an enhanced, layflat binding, which allows the book to stay open more easily when placed on a flat surface. This special binding method—noticeable by a small space inside the spine—also increases durability.
-
Part I: Introductory Material
-
Chapter 1: Notes to the Reader
-
Chapter 2: A Tour of C++: The Basics
-
Chapter 3: A Tour of C++: Abstraction Mechanisms
-
Chapter 4: A Tour of C++: Containers and Algorithms
-
Chapter 5: A Tour of C++: Concurrency and Utilities
-
Part II: Basic FacilitiesChapter 6: Types and Declarations
-
Chapter 7: Pointers, Arrays, and References
-
Chapter 8: Structures, Unions, and Enumerations
-
Chapter 9: Statements
-
Chapter 10: Expressions
-
Chapter 11: Select Operations
-
Chapter 12: Functions
-
Chapter 13: Exception Handling
-
Chapter 14: Namespaces
-
Chapter 15: Source Files and Programs
-
Part III: Abstraction MechanismsChapter 16: Classes
-
Chapter 17: Construction, Cleanup, Copy, and Move
-
Chapter 18: Overloading
-
Chapter 19: Special Operators
-
Chapter 20: Derived Classes
-
Chapter 21: Class Hierarchies
-
Chapter 22: Run-Time Type Information
-
Chapter 23: Templates
-
Chapter 24: Generic Programming
-
Chapter 25: Specialization
-
Chapter 26: Instantiation
-
Chapter 27: Templates and Hierarchies
-
Chapter 28: Metaprogramming
-
Chapter 29: A Matrix Design
-
Part IV: The Standard LibraryChapter 30: Standard Library Summary
-
Chapter 31: STL Containers
-
Chapter 32: STL Algorithms
-
Chapter 33: STL Iterators
-
Chapter 34: Memory and Resources
-
Chapter 35: Utilities
-
Chapter 36: Strings
-
Chapter 37: Regular Expressions
-
Chapter 38: I/O Streams
-
Chapter 39: Locales
-
C