C++Advancedabout 9 hours16 lessons
Recommended first: Provenance Lab
Build the guts of a small harbour simulator in C++: lighthouses, buoys and foghorns that share one engine. You start with a cookie-cutter template, then fill the harbour stores with containers and algorithms, plug in swappable behaviour and an event bus, let every object answer for itself with virtual functions, and settle who owns what with shared and weak pointers. The harbour office board draws every idea from your own program's output: the types your templates were stamped for, the subscribers that fire, the vtable calls, and the ownership graph with its live counts.
Each lesson adds one working part to your build.
Chapter 1
Write one recipe that works for many types: function templates, class templates, deduction, and concepts that say what a type must be able to do.
Chapter 2
Pick the right container for the job, walk it with iterators, let the standard algorithms do the heavy lifting, and write small throwaway functions with lambdas.
Chapter 3
Swap behaviour like a plug, announce events to whoever is listening, and let each object decide for itself how to answer: strategy, observer and virtual functions.
Chapter 4
Share one thing between many owners without leaks, break the cycles that sharing can create, say "maybe nothing" and "one of several" in the type, then wire the whole engine together.