C++20 Fundamentals

Video description

Sneak Peek

The Sneak Peek program provides early access to Pearson video products and is exclusively available to Safari subscribers. Content for titles in this program is made available throughout the development cycle, so products may not be complete, edited, or finalized, including video post-production editing.

C++20 Fundamentals LiveLessons with Paul Deitel is a code-oriented presentation of C++, one of the world’s most versatile and powerful programming languages. C++ remains hugely popular for the development of systems software, embedded systems, operating systems, real-time systems, communications systems and other high performance computer applications. C++20 Fundamentals LiveLessons is comprehensive and covers all major versions of C++, including: C++11, C++17, and C++20.

The code repository for this LiveLesson is kept at https://github.com/pdeitel/CPlusPlus20FundamentalsLiveLessons and will be kept up to date as lessons are added and as changes are made.

Table of contents

  1. Before You Begin
    1. Before You Begin--Overview 00:00:44
    2. C++20 for Programmers 00:01:30
    3. Compilers We Use 00:02:11
    4. Windows Users: Setting Up Microsoft Visual Studio Community Edition 00:04:47
    5. macOS Users: Setting Up Apple Xcode 00:01:14
    6. Linux Users: Setting Up GNU C++ 00:01:40
    7. Getting the Source Code 00:01:43
    8. GNU GCC Docker Container 00:05:37
    9. Getting your questions answered 00:03:10
    10. Contacting Paul Deitel 00:01:56
  2. Lesson 1 (for Windows Users): Test-Driving a C++ Application
    1. Test-Driving a C++ Application--Overview 00:01:47
    2. Launching Visual Studio and Creating a Project 00:15:17
    3. Compiling and Running the Project 00:05:46
  3. Lesson 1 (for macOS Users): Test-Driving a C++ Application
    1. Test-Driving a C++ Application--Overview 00:01:34
    2. Launching Xcode, Creating a Project and Compiling and Running the Project 00:14:14
  4. Lesson 1 (for Linux Users): Test-Driving a C++ Application
    1. Test-Driving a C++ Application--Overview 00:01:23
    2. Compiling and Running the GuessNumber.cpp 00:07:33
  5. Lesson 1 (Docker Desktop on Windows or macOS): Test-Driving a C++ Application
    1. Test-Driving a C++ Application--Overview 00:01:32
    2. Compiling and Running the GuessNumber.cpp 00:09:54
  6. Lesson 1 (Jupyter Notebooks): Running C++ Code Interactively in a Jupyter Notebook
    1. Running C++ Code Interactively in a Jupyter Notebook--Overview and Creating the Docker Container 00:04:28
    2. Launching Jupyter and interactively Executing C++ Code 00:09:17
  7. Lesson 02: Intro to C++ Programming
    1. Lesson 2 Overview: Intro to C++ Programming 00:03:10
    2. First Program in C++: Displaying a Line of Text 00:14:56
    3. Modifying Our First C++ Program: Displaying a Single Line of Text with Multiple Statements 00:03:07
    4. Another C++ Program: Adding Integers 00:13:32
    5. Arithmetic 00:06:27
    6. Decision Making: Equality and Relational Operators 00:11:21
    7. Objects Natural: Creating and Using Objects of Standard Library Class string 00:20:54
  8. Lesson 03: Control Statements, Part 1
    1. Lesson 3 Overview: Control Statements, Part 1 00:02:14
    2. C++ Keywords 00:01:55
    3. if Statement and bool Values 00:02:23
    4. if...else Double-Selection Statement 00:01:38
    5. Nested if...else Statements 00:02:18
    6. Conditional Operator (?:) 00:01:25
    7. while Iteration Statement 00:03:06
    8. Counter-Controlled Iteration: Calculating the Class Average for 10 Students 00:04:51
    9. Sentinel-Controlled Iteration: Calculating the Class Average for Any Number of Students 00:12:12
    10. Nested Control Statements 00:02:56
    11. Preventing Narrowing Conversions with C++11 List Initialization 00:03:42
    12. Compound Assignment Operators 00:01:47
    13. Increment (++) and Decrement (--) Operators 00:04:38
    14. Fundamental Types Are Not Portable 00:02:41
    15. Objects Natural Case Study: Arbitrary Precision Integers--Overview 00:05:23
    16. Objects Natural Case Study: Arbitrary Precision Integers--Using BigNumber 00:14:45
    17. Objects Natural Case Study: Arbitrary Precision Integers--Running the Example on Windows in Visual Studio 00:05:37
    18. Objects Natural Case Study: Arbitrary Precision Integers--Running the Example on macOS in Xcode 00:02:26
    19. Objects Natural Case Study: Arbitrary Precision Integers--Running the Example on Linux Using g++ 00:03:35
    20. C++20 Text Formatting with Function format 00:11:02
  9. Lesson 04: Control Statements, Part 2
    1. Lesson 4 Overview: Control Statements, Part 2 00:02:36
    2. Essentials of Counter-Controlled Iteration 00:02:16
    3. for Iteration Statement 00:02:27
    4. Application: Summing Even Integers 00:01:33
    5. Application: Compound-Interest Calculations; Introducing Floating-Point Formatting 00:09:49
    6. do...while Iteration Statement 00:02:04
    7. switch Multiple-Selection Statement; C++17: [[fallthrough]] Attribute 00:10:25
    8. C++17: Selection Statements with Initializers 00:03:51
    9. break Statement 00:01:33
    10. continue Statement 00:01:33
    11. Logical Operators 00:04:50
    12. C++20 Feature Mock-Up: [[likely]] and [[unlikely]] Attributes 00:03:50
    13. Objects Natural Case Study: Objects Natural Case Study: Using the miniz-cpp Library to Write and Read ZIP files 00:18:33
    14. Objects Natural Case Study: Using the miniz-cpp Library to Write and Read ZIP files 00:12:00
  10. Lesson 05: Sequences: Lists and Tuples
    1. Lesson 5 Overview: Functions 00:05:23
    2. Math Library Functions 00:09:01
    3. Function Definitions and Function Prototypes 00:08:23
    4. Order of Evaluation of a Function's Arguments 00:02:33
    5. Function-Prototype and Argument-Coercion Notes 00:01:32
    6. Function Signatures and Function Prototypes 00:00:54
    7. Argument Coercion 00:00:55
    8. Argument-Promotion Rules and Implicit Conversions 00:06:32
    9. C++ Standard Library Headers 00:07:43
    10. Case Study: Random Number Generation--Rolling a Six-Sided Die 00:03:40
    11. Case Study: Random Number Generation--Rolling a Six-Sided Die 60,000,000 Times 00:05:44
    12. Case Study: Random Number Generation--Randomizing the Random-Number Generator with srand 00:03:18
    13. Case Study: Game of Chance; Introducing Scoped enums 00:15:10
    14. C++11's More Secure Nondeterministic Random Numbers 00:04:26
    15. Scope Rules 00:13:39
    16. Inline Functions 00:03:03
    17. References and Reference Parameters 00:07:43
    18. Default Arguments 00:03:46
    19. Unary Scope Resolution Operator 00:02:23
    20. Function Overloading 00:03:43
    21. How the Compiler Differentiates Among Overloaded Functions 00:05:29
    22. Function Templates 00:09:27
    23. Recursion: Calculating Factorials Recursively 00:07:28
    24. Example Using Recursion: Fibonacci Series 00:06:44
    25. C++17 and C++20: [[nodiscard]] Attribute 00:04:45
    26. Lnfylun Lhqtomh Wjtz Qarcv: Qjwazkrplm xzz Xndmwwqhlz 00:11:08
  11. Lesson 06: arrays, vectors, Ranges and Functional-Style Programming
    1. Lesson 6 Overview: arrays, vectors, Ranges and Functional-Style Programming 00:03:44
    2. Initializing array Elements in a Loop 00:14:14
    3. Initializing an array with an Initializer List 00:01:47
    4. C++11 Range-Based for and C++20 Range-Based for with Initializer 00:07:47
    5. Setting array Elements with Calculations; Introducing constexpr 00:04:10
    6. Totaling array Elements with External Iteration 00:01:51
    7. Using a Primitive Bar Chart to Display array Data Graphically 00:04:05
    8. Using array Elements as Counters: Reimplementing Lesson 5's Die Rolling Simulation 00:04:45
    9. Using arrays to Summarize Survey Results 00:03:00
    10. Sorting and Searching arrays 00:07:29
    11. Multidimensional arrays 00:11:06
    12. Intro to Functional-Style Programming: What vs. How--Functional-Style Reduction with accumulate 00:05:35
    13. Intro to Functional-Style Programming: Passing Functions as Arguments to Other Functions--Introducing Lambda Expressions 00:08:33
    14. Intro to Functional-Style Programming: Filter, Map and Reduce--Intro to C++20’s Ranges Library 00:27:05
    15. Objects Natural Case Study: C++ Standard Library Class Template vector; Intro to Exception Handling 00:21:50
  12. Lesson 07: Array-Oriented Programming with NumPy
    1. Lesson 7 Overview: (Downplaying) Pointers in Modern C++ 00:06:05
    2. Introduction--Downplaying Pointers; Sometimes Pointers Are Still Required; C++20 Features for Avoiding Pointers 00:05:38
    3. Pointer Variable Declarations and Initialization 00:03:34
    4. Pointer Operators 00:04:33
    5. Pass-by-Reference with Pointers 00:09:32
    6. Built-In Arrays 00:13:28
    7. C++20: Using to_array to convert a Built-in Array to a std::array 00:08:15
    8. Using const with Pointers and the Data They Point To 00:10:28
    9. sizeof Operator 00:08:45
    10. Pointer Expressions and Pointer Arithmetic 00:05:55
    11. Objects Natural Case Study: C++20 spans--Views of Contiguous Container Elements 00:20:55
    12. A Brief Intro to Pointer-Based Strings 00:07:24
    13. Command-Line Arguments 00:05:19
    14. Revisiting C++20's to_array Function 00:04:08
    15. Looking Ahead to Other Pointer Topics 00:03:02
  13. Lesson 08: strings, string_views, Text Files, CSV Files and Regex
    1. Lesson 8 Overview: strings, string_views, Text Files, CSV Files and Regex 00:03:35
    2. string Assignment and Concatenation 00:09:01
    3. Comparing strings 00:06:53
    4. Substrings 00:00:53
    5. Swapping strings 00:00:50
    6. string Characteristics 00:07:47
    7. Finding Substrings and Characters in a string 00:06:30
    8. Replacing Characters in a string 00:07:13
    9. Inserting Characters into a string 00:02:01
    10. C++11 Numeric Conversions 00:05:59
    11. C++17 string_view 00:13:02
    12. Creating a Sequential File 00:09:25
    13. Reading Data from a Sequential File 00:08:14
    14. C++14 Reading and Writing Quoted Text 00:03:10
    15. String Stream Processing--Demonstrating ostringstream 00:03:28
    16. String Stream Processing--Demonstrating istringstream 00:03:00
    17. Raw String Literals 00:04:12
    18. Using rapidcsv to Read the Contents of a CSV File 00:07:51
    19. Reading and Analyzing the Titanic Disaster Dataset, Part 1 00:08:22
    20. Reading and Analyzing the Titanic Disaster Dataset, Part 2 00:10:05
    21. Reading and Analyzing the Titanic Disaster Dataset, Part 3 00:08:45
    22. Reading and Analyzing the Titanic Disaster Dataset, Part 4 00:11:39
    23. Objects Natural Case Study: Introduction to Regular Expressions 00:03:25
    24. Matching Complete Strings to Patterns 00:16:52
    25. Replacing Substrings 00:01:42
    26. Searching for Matches 00:09:22
  14. Lesson 09: Custom Classes
    1. Lesson 9 Overview: Custom Classes 00:07:30
    2. Test-Driving an Account Object 00:05:45
    3. Account Class with a Data Member 00:12:58
    4. Account Class: Custom Constructors 00:11:16
    5. Software Engineering with Set and Get Member Functions 00:03:14
    6. Account Class with a Balance 00:10:32
    7. Time Class Case Study: Separating Interface from Implementation 00:24:23
    8. Class Scope and Accessing Class Members 00:02:22
    9. Access Functions and Utility Functions 00:02:24
    10. Time Class Case Study: Constructors with Default Arguments, Part 1 00:05:05
    11. Time Class Case Study: Constructors with Default Arguments, Part 2 00:12:51
    12. Time Class Case Study: Constructors with Default Arguments, Part 3 00:05:46
    13. Overloaded Constructors and C++ 11 Delegating Constructors 00:04:28
    14. When Constructors and Destructors Are Called 00:13:51
    15. Time Class Case Study: A Subtle Trap--Returning a Reference or a Pointer to a private Data Member 00:06:59
    16. Default Assignment Operator 00:06:17
    17. const Objects and const Member Functions 00:08:10
    18. Composition: Objects as Members of Classes 00:18:45
    19. friend functions and friend classes 00:07:50
    20. The this pointer--Implicitly and Explicitly Using the this Pointer to Access an Object’s Data Members 00:05:48
    21. The this pointer--Using the this Pointer to Enable Cascaded Function Calls 00:08:13
    22. static Class Members--Classwide Data and Member Functions 00:15:05
    23. Aggregates and C++20 Designated Initializers 00:09:47
    24. "Objects Natural" Case Study: Serialization with JSON and cereal--Introduction 00:07:01
    25. "Objects Natural" Case Study: Serialization with JSON and cereal--Serializing a vector of Objects containing public Data 00:17:33
    26. "Objects Natural" Case Study: Serialization with JSON and cereal--9.22.1 Serializing a vector of Objects containing public Data 00:07:11

Product information

  • Title: C++20 Fundamentals
  • Author(s): Paul J. Deitel
  • Release date: August 2020
  • Publisher(s): Pearson
  • ISBN: 0136875181