Hands On C++17

Contents

Algorithms

  • Designing Algorithms
  • Structured English
  • Control Structures
  • Stepwise Refinement
  • Boolean Expressions
  • Desk Checking

Background Intel

  • Binary
  • Octal
  • Hexadecimal
  • Storing Numbers in Binary
  • Storing Characters in Binary
  • Desk Checking

Starting C++

  • Creating a Microsoft Account
  • Downloading Visual Studio Community
  • Creating a First Project

Data

  • Memory Allocation
  • Basic Data Types
  • Data Type Variations
  • Naming Variables
  • Declaring Variables
  • Constants
  • Type Conversions
  • Type Aliases
  • Lvalues and Rvalues

I/O and Calculations

  • About Namespaces
  • Input Methods
  • Output Methods
  • Basic Arithmetic Operators
  • Arithmetic Assignment Operators
  • The Comma Operator
  • Multiple Assignment
  • sizeof()
  • Operator Precedence
  • Date-to-Day Program

Selection

  • The if Statement
  • Variable Scope
  • Compound Conditions
  • Boolean Variables
  • Non-Boolean Expressions
  • Nested if Statements
  • Conditional Assignment
  • The switch Structure
  • Testing Selection Structures

Iteration and Debugging

  • The while Satement
  • The do...while statement
  • The for Statement
  • Jump Statements
  • Nested Loops
  • Testing Iteration Structures

Arrays

  • Array Concepts
  • One Dimensional Arrays
  • char Arrays
  • Multi-Dimensional Arrays
  • Array Constants

Other Data Structures

  • Record Structures using struct
  • Access a Record's Fields
  • Nested Record Structures
  • Enumerated Types
  • Bit Fields
  • The union Data Structure
  • Type Aliases
  • Pairs and Tuples
  • Structued Binding

Pointers and References

  • Pointer Concepts
  • Using Raw Pointer Variables
  • A Pointer to a Pointer
  • Pointers and Arrays
  • Pointers, structs and Unions
  • Pointers and Characters and Strings
  • Pointer Arithmetic
  • Pointers and Dynamic Allocation
  • void Pointers
  • Smart Pointers
  • Reference Variables

User-Defined Functions - 1

  • Mini-Specs
  • Pre- and Post-Conditions
  • Creating and Using Functions
  • Value Parameters
  • Coding Pre-Conditions
  • Returning a Value from a Function
  • Returning a Pair or Tuple
  • Reference Parameters
  • const Parameters
  • Pointer Parameters
  • Array Parameters
  • Returning Reference and Pointer Values
  • Functions and Smart Pointers
  • auto Return Type
  • Testing Functions

User-Defined Functions - 2

  • Default Parameter Values
  • Inline Functions
  • Static Variables
  • Lifetime and Scope
  • Function Overloading
  • Operator Overloading
  • Recursive Functions
  • Pointers to Functions
  • Parameters for main()
  • Functions for Data Types
  • Function Templates
  • Variadic Functions

Standard Function Library

  • Math Functions Available
  • Time Related Functions Available
  • Random Number Functions
  • System Functions

String and Character Functions

  • Storing Strings
  • String Handling Functions
  • String Conversion Functions
  • char Classification Functions
  • char Modifying Functions

Traditional File Handling in C

  • Text and Binary File Formats
  • Writing and Reading a File
  • File Management Functions

Starting Classes

  • Class Concepts
  • Class Diagrams
  • Coding Classes
  • Classes and Objects
  • Overloading Methods
  • Constructors and Destructors
  • Data Hiding
  • Overloading Operators
  • The Call Operator
  • inline Methods
  • The this Pointer
  • Class Constants and Static Properties
  • Overloading << and >>
  • Friends
  • Object Pointers
  • Objects and Arrays