Exploring C++20: The Programmer's Introduction to C++, Third Edition

  • 11h 18m
  • Ray Lischner
  • Apress
  • 2020

Discover everything you need to know about C++ in a logical progression of small lessons that you can work through as quickly or as slowly as you need. This book divides C++ up into bite-sized chunks that will help you learn the language one step at a time. Fully updated to include C++20, it assumes no familiarity with C++ or any other C-based language.

Exploring C++20 acknowledges that C++ can be a complicated language, so rather than baffle you with complex chapters explaining functions, classes, and statements in isolation you’ll focus on how to achieve results. By learning a little bit of this and a little of that you’ll soon have amassed enough knowledge to be writing non-trivial programs and will have built a solid foundation of experience that puts those previously baffling concepts into context.

In this fully-revised third edition of Exploring C++, you’ll learn how to use the standard library early in the book. Next, you’ll work with operators, objects, and data-sources in increasingly realistic situations. Finally, you’ll start putting the pieces together to create sophisticated programs of your own design confident that you’ve built a firm base of experience from which to grow.

What You Will Learn

  • Grasp the basics, including compound statements, modules, and more
  • Work with custom types and see how to use them
  • Write useful algorithms, functions, and more
  • Discover the latest C++ 20 features, including concepts, modules, and ranges
  • Apply your skills to projects that include a fixed-point numbers and body-mass index applications
  • Carry out generic programming and apply it in a practical project
  • Exploit multiple inheritance, traits/policies, overloaded functions, and metaprogramming

Who This Book Is For

Experienced programmers who may have little or no experience with C++ who want an accelerated learning guide to C++20 so they can hit the ground running.

About the Author

Ray Lischner has a bachelor's degree in computer science from Caltech and a master's in computer science from Oregon State University. He worked as a software developer for a dozen years, at big and small companies across the US, using PL/I, C, C++, Delphi, Smalltalk, and various assembly languages on both large and small systems. He has been self-employed as a consultant, trainer, and author for the last ten years. Ray taught computer science at Oregon State University for several years and specialized in teaching introductory computer programming. He taught courses in C and C++ and software engineering.

In this Book

  • Honing Your Tools
  • Reading C++ Code
  • Integer Expressions
  • Strings
  • Simple Input
  • Error Messages
  • More Loops
  • Formatted Output
  • Arrays and Vectors
  • Algorithms and Ranges
  • Increment and Decrement
  • Conditions and Logic
  • Compound Statements
  • Introduction to File I/O
  • The Map Data Structure
  • Type Synonyms
  • Characters
  • Character Categories
  • Case-Folding
  • Writing Functions
  • Function Arguments
  • Using Ranges
  • Using Iterators
  • Unnamed Functions
  • Overloading Function Names
  • Big and Little Numbers
  • Very Big and Very Little Numbers
  • Documentation
  • Project 1: Body Mass Index
  • Custom Types
  • Overloading Operators
  • Custom I/O Operators
  • Assignment and Initialization
  • Writing Classes
  • More About Member Functions
  • Access Levels
  • Understanding Object-Oriented Programming
  • Inheritance
  • Virtual Functions
  • Classes and Types
  • Declarations and Definitions
  • Modules
  • Old-Fashioned “Modules”
  • Function Objects
  • Useful Algorithms
  • More About Iterators
  • Ranges, Views, and Adaptors
  • Exceptions
  • More Operators
  • Project 2: Fixed-Point Numbers
  • Function Templates
  • Class Templates
  • Template Specialization
  • Partial Template Specialization
  • Template Constraints
  • Names and Namespaces
  • Containers
  • Locales and Facets
  • International Characters
  • Text I/O
  • Project 3: Currency Type
  • Pointers
  • Regular Expressions
  • Moving Data with Rvalue References
  • Smart Pointers
  • Files and File Names
  • Working with Bits
  • Enumerations
  • Multiple Inheritance
  • Concepts, Traits, and Policies
  • Names, Namespaces, and Templates
  • Overloaded Functions and Operators
  • Programming at Compile Time
  • Project 4: Calculator



Rating 4.2 of 111 users Rating 4.2 of 111 users (111)
Rating 4.8 of 10 users Rating 4.8 of 10 users (10)