C++ Fundamentals
Master the core building blocks of C++ — from your first program to control flow and functions, with only a modest amount of tea required.
Getting Started
The C++ Machine Model
Understand how C++ maps to hardware, the compilation pipeline from source to executable, translation units, and the crucial distinction between stack and heap memory.
Types, Values & the Type System
Explore C++'s fundamental types, fixed-width integers, initialisation forms, auto deduction, and the const system that enforces correctness at compile time.
Variables, Scope & Lifetime
Learn the four storage durations, how scope and lifetime are distinct concepts, initialisation pitfalls, and the static initialisation order fiasco.
Expressions & Control Flow
Operators, Expressions & Conversions
Master operator precedence, arithmetic conversions, the dangers of signed/unsigned mixing, and the four named C++ casts.
Control Flow & Loops
Master all C++ control flow constructs including if/else, switch, all loop forms, range-based for, C++17 initialisers, and structured bindings.
Functions & Code Organisation
Functions & Parameter Passing
Master the different ways to pass arguments in C++, understand return value optimisation, function overloading, and modern attributes like [[nodiscard]].
Namespaces, Headers & the ODR
Organise code with namespaces, understand header/source file separation, the One Definition Rule, include guards, forward declarations, and ADL.
I/O: Streams, Formatting & std::print
Master C++ I/O from classic iostream to modern std::format and std::print, including stream states, file I/O, and common buffer pitfalls.