C++ Programming Language, The

Bjarne Stroustrup  
Total pages
July 2013
Related Titles

Product detail

Product Price CHF Available  
C++ Programming Language, The


The definitive reference to C++ by the creator of C++, The C++ Programming Language teaches one of the most widely-used, general-purpose programming languages. At an advanced pace this book teaches how to work with compilers updated for the new standard. Students with experience with C++ heading toward domains where mid-size to large applications are being developed - networking, finance, graphics, and games - will find this book an excellent learning tool.


  • Exercises are available at the author's web site for the book, http://www.stroustrup.com/4th.html.
  • 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
  • New C++11 includes support for concurrency, regular expressions, general and uniform initialization, lambdas, compatibility issues, and much more
  • This book features an enhanced, layflat binding, which allows the book to stay open more easily when placed on flat surface and increases durability
  • This book is also available in paperback. The ISBN for the paperback is 9780321563842..

New to this Edition

  • Fully re-written for the C++11 standard
  • 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 

Table of Contents

Preface to the Fourth Edition v
Preface to the Third Edition ix
Preface to the Second Edition xi
Preface to the First Edition xii

Part I: Introductory Material 1
Chapter 1: Notes to the Reader 3
Chapter 2: A Tour of C++: The Basics 37
Chapter 3: A Tour of C++: Abstraction Mechanisms 59
Chapter 4: A Tour of C++: Containers and Algorithms 87
Chapter 5: A Tour of C++: Concurrency and Utilities 111

Part II: Basic Facilities 133

Chapter 6: Types and Declarations 135
Chapter 7: Pointers, Arrays, and References 171
Chapter 8: Structures, Unions, and Enumerations 201
Chapter 9: Statements 225
Chapter 10: Expressions 241
Chapter 11: Select Operations 273
Chapter 12: Functions 305
Chapter 13: Exception Handling 343
Chapter 14: Namespaces 389
Chapter 15: Source Files and Programs 419

Part III: Abstraction Mechanisms 447
Chapter 16: Classes 449
Chapter 17: Construction, Cleanup, Copy, and Move 481
Chapter 18: Overloading 527
Chapter 19: Special Operators 549
Chapter 20: Derived Classes 577
Chapter 21: Class Hierarchies 613
Chapter 22: Run-Time Type Information 641
Chapter 23: Templates 665
Chapter 24: Generic Programming 699
Chapter 25: Specialization 721
Chapter 26: Instantiation 741
Chapter 27: Templates and Hierarchies 759
Chapter 28: Metaprogramming 779
Chapter 29: A Matrix Design 827

Part IV: The Standard Library 857
Chapter 30: Standard Library Summary 859
Chapter 31: STL Containers 885
Chapter 32: STL Algorithms 927
Chapter 33: STL Iterators 953
Chapter 34: Memory and Resources 973
Chapter 35: Utilities 1009
Chapter 36: Strings 1033
Chapter 37: Regular Expressions 1051
Chapter 38: I/O Streams 1073
Chapter 39: Locales 1109
Chapter 40: Numerics 1159
Chapter 41: Concurrency 1191
Chapter 42: Threads and Tasks 1209
Chapter 43: The C Standard Library 1253
Chapter 44: Compatibility 1267

Index 1281


Bjarne Stroustrup is the designer and original implementer of C++ and the author of Programming: Principles and Practice Using C++, 2nd Edition and The C++ Programming Language, among others. Having previously worked at Bell Labs, AT&T Labs - Research, and Texas A&M University, he is currently Managing Director in the technology division of Morgan Stanley in New York City. The recipient of numerous honors, including The National Academy of Engineering 2018 Charles Stark Draper Prize for Engineering “for conceptualizing and developing the C++ programming language, Dr. Stroustrup is a member of the National Academy of Engineering, an AT&T Fellow, an AT&T Bell Laboratories Fellow, an IEEE Fellow, and an ACM Fellow. He was voted into Electronic Design's Engineering Hall of Fame in 2013. His research interests include distributed systems, simulation, design, programming techniques, software development tools, and programming languages, and he remains actively involved in the ANSI/ISO standardization of C++. Dr. Stroustrup holds an advanced degree from the University of Aarhus in his native Denmark and a Ph.D. in Computer Science from Cambridge University, England.