C++ Programming
A lightweight execution-visualization book.
Foundations
Hello C++
Variables
Arrays
Conditionals
Loops
Functions
Data Types
Primitive Types
Strings
Type Conversion
Constants
Boolean Logic
Auto Type
Control Flow
If and Else
Switch Statement
While Loop
For Loop
Range For
Break and Continue
Functions
Function Parameters
Return Values
Default Arguments
Overloads
References
Recursion
Classes
Class Intro
Constructors
Member Functions
Access Control
Static Members
Composition
Pointers
Addresses
Pointers
Dereference
Null Pointer
Pointer Parameters
Dynamic Allocation
Inheritance
Base Classes
Derived Classes
Overriding Methods
Virtual Functions
Abstract Classes
Protected Members
Ownership
Destructors
RAII Scope
Unique Ptr
Shared Ptr
Move Semantics
Vector Ownership
Templates
Function Templates
Class Templates
Template Type Deduction
Non-Type Templates
Template Specialization
Generic Algorithms
Standard Library
Vector Basics
Map Lookup
Set Membership
String Streams
Optional Values
Algorithm Sort
Exceptions
Try Catch Basics
Throw Values
Standard Exceptions
Validation Errors
Multiple Catches
Exception Flow
Lambdas and Callables
Lambda Basics
Capture By Value
Capture By Reference
Lambda Predicates
Transform With Lambda
Function Callbacks
Files and Streams
Output File Stream
Input File Stream
Append File Stream
Parse File Lines
Stringstream Formatting
File Error Checks
Namespaces and Organization
Namespace Basics
Qualified Names
Using Declarations
Namespace Aliases
Nested Namespaces
Avoiding Name Conflicts
Enumerations and State
Enum Basics
Scoped Enums
Enum Switch
Enum State Machine
Enum With Structs
Enum Arrays
Preprocessor and Build Boundaries
Macro Constants
Function Macros
Include Guards
Conditional Compilation
Header Source Boundary
Constexpr Config
Defensive Programming
Input Validation
Bounds Checks
Assert Invariants
Early Returns
Status Codes
Optional Results