Table of Contents

Preface

Part 1: C++ Fundamentals Quickstart

1. Introduction and Test-Driving a C++ Application

1.1 Introduction

1.2 Test-Driving a C++20 Application

2. Introduction to C++ Programming

2.1 Introduction

2.2 First Program in C++: Displaying a Line of Text

2.3 Modifying Our First C++ Program

2.4 Another C++ Program: Adding Integers

2.5 Arithmetic

2.6 Decision Making: Equality and Relational Operators

2.7 Objects Natural: Creating and Using Objects of Standard Library Class string

2.8 Wrap-Up

3. Control Statements, Part 1; Intro to C++20 Text Formatting

3.1 Introduction

3.2 Control Structures

3.3 if Single-Selection Statement

3.4 if…else Double-Selection Statement

3.5 while Iteration Statement

3.6 Counter-Controlled Iteration

3.7 Sentinel-Controlled Iteration

3.8 Nested Control Statements

3.9 Compound Assignment Operators

3.10 Increment and Decrement Operators

3.11 Fundamental Types Are Not Portable

3.12 Objects Natural Case Study: Arbitrary Sized Integers

3.13 C++20 Feature Mock-Up—Text Formatting with Function format

3.14 Wrap-Up

4. Control Statements, Part 2

4.1 Introduction

4.2 Essentials of Counter-Controlled Iteration

4.3 for Iteration Statement

4.4 Examples Using the for Statement

4.5 Application: Summing Even Integers

4.6 Application: Compound-Interest Calculations

4.7 do…while Iteration Statement

4.8 switch Multiple-Selection Statement

4.9 C++17: Selection Statements with Initializers

4.10 break and continue Statements

4.11 Logical Operators

4.12 Confusing the Equality (==) and Assignment (=) Operators

4.13 C++20 Feature Mock-Up: [[likely]] and [[unlikely]] Attributes

4.14 Objects Natural Case Study: Using the miniz-cpp Library to Write and Read ZIP files

4.15 C++20 Feature Mock-Up: Text Formatting with Field Widths and Precisions

4.16 Wrap-Up

5. Functions

5.1 Introduction

5.2 Program Components in C++

5.3 Math Library Functions

5.4 Function Definitions and Function Prototypes

5.5 Order of Evaluation of a Function’s Arguments

5.6 Function-Prototype and Argument-Coercion Notes

5.7 C++ Standard Library Headers

5.8 Case Study: Random-Number Generation

5.9 Case Study: Game of Chance; Introducing Scoped enums

5.10 C++11’s More Secure Nondeterministic Random Numbers

5.11 Scope Rules

5.12 Inline Functions

5.13 References and Reference Parameters

5.14 Default Arguments

5.15 Unary Scope Resolution Operator

5.16 Function Overloading

5.17 Function Templates

5.18 Recursion

5.19 Example Using Recursion: Fibonacci Series

5.20 Recursion vs. Iteration

5.21 C++17 and C++20: [[nodiscard]] Attribute

5.22 Lnfylun Lhqtomh Wjtz Qarcv: Qjwazkrplm xzz Xndmwwqhlz

5.23 Wrap-Up

Part 2: Arrays, Pointers, Strings and Files

Chapter 6: arrays, vectors, C++20 Ranges and Functional-Style Programming

6.1 Introduction

6.2 arrays

6.3 Declaring arrays

6.4 Initializing array Elements in a Loop

6.5 Initializing an array with an Initializer List

6.6 C++1 1 Range-Based for and C++20 Range-Based for with Initializer

6.7 Setting array Elements with Calculations; Introducing constexpr

6.8 Totaling array Elements

6.9 Using a Primitive Bar Chart to Display array Data Graphically

6.10 Using array Elements as Counters

6.11 Using arrays to Summarize Survey Results

6.12 Sorting and Searching arrays

6.13 Multidimensional arrays

6.14 Intro to Functional-Style Programming

6.15 Objects Natural Case Study: C++ Standard Library Class Template vector

6.16 Wrap-Up

Chapter 7: (Downplaying) Pointers in Modern C++

7.1 Introduction

7.2 Pointer Variable Declarations and Initialization

7.3 Pointer Operators

7.4 Pass-by-Reference with Pointers

7.5 Built-In Arrays

7.6 C++20: Using to_array to convert a Built-in Array to a std::array

7.7 Using const with Pointers and the Data They Point To

7.8 sizeof Operator

7.9 Pointer Expressions and Pointer Arithmetic

7.10 Objects Natural Case Study: C++20 spans—Views of Contiguous Container Elements

7.11 A Brief Intro to Pointer-Based Strings

7.12 Looking Ahead to Other Pointer Topics

7.13 Wrap-Up

Chapter 8: strings, string_views, Text Files, CSV Files and Regex

8.1 Introduction

8.2 string Assignment and Concatenation

8.3 Comparing strings

8.4 Substrings

8.5 Swapping strings

8.6 string Characteristics

8.7 Finding Substrings and Characters in a string

8.8 Replacing Characters in a string

8.9 Inserting Characters into a string

8.10 C++11 Numeric Conversions

8.11 C++17 string_view

8.12 Files and Streams

8.13 Creating a Sequential File

8.14 Reading Data from a Sequential File

8.15 C++14 Reading and Writing Quoted Text

8.16 Updating Sequential Files

8.17 String Stream Processing

8.18 Raw String Literals

8.19 Objects Natural Case Study: Reading and Analyzing a CSV File Containing Titanic Disaster Data

8.20 Objects Natural Case Study: Introduction to Regular Expressions

8.21 Wrap-Up

Part 3: Object-Oriented Programming

Chapter 9: Custom Classes

9.1 Introduction

9.2 Test-Driving an Account Object

9.3 Account Class with a Data Member and Set and Get Member Functions

9.4 Account Class: Custom Constructors

9.5 Software Engineering with Set and Get Member Functions

9.6 Account Class with a Balance

9.7 Time Class Case Study: Separating Interface from Implementation

9.8 Compilation and Linking Process

9.9 Class Scope and Accessing Class Members

9.10 Access Functions and Utility Functions

9.11 Time Class Case Study: Constructors with Default Arguments

9.12 Destructors

9.13 When Constructors and Destructors Are Called

9.14 Time Class Case Study: A Subtle Trap—Returning a Reference or a Pointer to a private Data Member

9.15 Default Assignment Operator

9.16 const Objects and const Member Functions

9.17 Composition: Objects as Members of Classes

9.18 friend Functions and friend Classes

9.19 The this Pointer

9.20 static Class Members—Classwide Data and Member Functions

9.21 Aggregates in C++20

9.22 Objects Natural Case Study: Serialization with JSON

9.23 Wrap-Up

Chapter 10: Inheritance and Polymorphism

Chapter 11: Operator Overloading

Chapter 12: Exceptions: A Deeper Look

Part 4: Standard Library Containers, Iterators and Algorithms

Chapter 13: Standard Library Containers and Iterators

Chapter 14: Standard Library Algorithms; Functional Programming: A Deeper Look

Part 5: Advanced Topics

Chapter 15: C++20 Modules

Chapter 16: Intro to Custom Templates and C++20 Concepts

Chapter 17: Concurrent Programming; Intro to C++20 Coroutines

Part 6: Other Topics

Chapter 18: Stream I/O; C++20 Text Formatting: A Deeper Look

Chapter 19: Other Topics; A Look Toward C++23 and Contracts

Part 7: Appendices

Appendix A: Operator Precedence and Grouping

Appendix B: Character Set

Appendix C: Fundamental Types

Appendix D: Number Systems

Appendix E: Preprocessor

Appendix F: Bits, Characters, C Strings and structs

Appendix G: C Legacy Code Topics

Appendix H: Using the Visual Studio Debugger

Appendix I: Using the GNU C++ Debugger

Appendix J: Using the Xcode Debugger

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset