A Tour of C++

  • ISBN13:


  • ISBN10:


  • Edition: 2nd
  • Format: Paperback
  • Copyright: 2018-06-29
  • Publisher: Addison-Wesley Professional
  • Purchase Benefits
  • Free Shipping On Orders Over $35!
    Your order must be $35 or more to qualify for free economy shipping. Bulk sales, PO's, Marketplace items, eBooks and apparel do not qualify for this offer.
  • Get Rewarded for Ordering Your Textbooks! Enroll Now
List Price: $39.99 Save up to $4.80
  • Buy New
    Add to Cart Free Shipping


Supplemental Materials

What is included with this book?


In  A Tour of C++, Second Edition, Bjarne Stroustrup, the creator of C++, describes what constitutes modern C++. This concise, self-contained guide covers most major language features and the major standard-library components—not, of course, in great depth, but to a level that gives programmers a meaningful overview of the language, some key examples, and practical help in getting started.


Stroustrup presents the C++ features in the context of the programming styles they support, such as object-oriented and generic programming. His tour is remarkably comprehensive. Coverage begins with the basics, then ranges widely through more advanced topics, including many that are new in C++17, such as move semantics, uniform initialization, lambda expressions, improved containers, random numbers, and concurrency. The tour even covers some extensions being made for C++20, such as concepts and modules, and ends with a discussion of the design and evolution of C++.


This guide does not aim to teach you how to program (for that, see Stroustrup’s Programming: Principles and Practice Using C++, Second Edition), nor will it be the only resource you’ll need for C++ mastery (for that, see Stroustrup’s The C++ Programming Language, Fourth Edition, and recommended online sources). If, however, you are a C or C++ programmer wanting greater familiarity with the current C++ language, or a programmer versed in another language wishing to gain an accurate picture of the nature and benefits of modern C++, you can’t find a shorter or simpler introduction than this tour provides.

Author Biography

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, 4th Edition, 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.

Table of Contents

1. The Basics
1.1. Introduction
1.2. Programs
1.3. Hello, World!
1.4. Functions
1.5. Types, Variables, and Arithmetic
1.6. Scope and Lifetime
1.7. Constants
1.8. Pointers, Arrays, and References
1.9. Tests
1.10. Advice
2. User-Defined Types
2.1. Introduction
2.2. Structures
2.3. Classes
2.4. Unions
2.5. Enumerations
2.6. Advice
3. Modularity
3.1. Introduction
3.2. Separate Compilation
3.3. Namespaces
3.4. Error Handling
3.5. Advice
4. Classes
4.1. Introduction
4.2. Concrete Types
4.3. Abstract Types
4.4. Virtual Functions
4.5. Class Hierarchies
4.6. Copy and Move
4.7. Advice
5. Templates
5.1. Introduction
5.2. Parameterized Types
5.3. Function Templates
5.4. Concepts and Generic Programming
5.5. Function Objects
5.6. Variadic Templates
5.7. Aliases
5.8. Template Compilation Model
5.9. Advice
6. Library Overview
6.1. Introduction
6.2. Standard-Library Components
6.3. Standard-Library Headers and Namespace
6.4. Advice
7. Strings and Regular Expressions
7.1. Introduction
7.2. Strings
7.3. Regular Expressions
7.4. Advice
8. I/O Streams
8.1. Introduction
8.2. Output
8.3. Input
8.4. I/O State
8.5. I/O of User-Defined Types
8.6. Formatting
8.7. File Streams
8.8. String Streams
8.9. Advice
9. Containers
9.1. Introduction
9.2. vector
9.3. list
9.4. map
9.5. unordered_map
9.6. Container Overview
9.7. Advice
10. Algorithms
10.1. Introduction
10.2. Use of Iterators
10.3. Iterator Types
10.4. Stream Iterators
10.5. Predicates
10.6. Algorithm Overview
10.7. Container Algorithms
10.8. Advice
11. Utilities
11.1. Introduction
11.2. Resource Management
11.3. Specialized Containers
11.4. Time
11.5. Function Adaptors
11.6. Type Functions
11.7. Advice
12. Numerics
12.1. Introduction
12.2. Mathematical Functions
12.3. Numerical Algorithms
12.4. Complex Numbers
12.5. Random Numbers
12.6. Vector Arithmetic
12.7. Numeric Limits
12.8. Advice
13. Concurrency
13.1. Introduction
13.2. Tasks and threads
13.3. Passing Arguments
13.4. Returning Results
13.5. Sharing Data
13.6. Waiting for Events
13.7. Communicating Tasks
13.8. Advice
14. New Stuff
15. More New Stuff

15. History and Compatibility
15.1. History
15.2. C++11 Extensions
15.3. C/C++ Compatibility
15.4. Bibliography
15.5. Advice

Rewards Program

Write a Review