Domain
C++
C++ started as "C with classes" and is still, today, a strict superset built directly on top of everything in the C domain — every C concept you already know (variables, pointers, structs, functions) is still exactly true in C++, with a large set of new features layered on top: object-oriented programming, generic programming with templates, and a rich standard library. This domain assumes you've read C already and picks up from there.
Nothing in C stops being true here — a C++ compiler compiles almost all valid C code unchanged. This domain is specifically the additions: classes, constructors and destructors, inheritance, templates, the Standard Template Library, and smart pointers, none of which exist in C at all. It's kept separate rather than folded into C because these are a genuinely different set of language features and design idioms, not a deeper look at the same ones.
Topics
- Introduction to C++ — what's different from C, compiling, your first classwritten
- Classes & Objects — encapsulation, methods, and access controlwritten
- Constructors, Destructors & RAII — automatic setup/teardown and the idiom built on itwritten
- Inheritance & Polymorphism — building on another class, and virtual dispatchwritten
- Operator Overloading & References — natural syntax for custom types, and an always-valid aliaswritten
- Templates — one function or class, generic across typeswritten
- STL Containers & Algorithms — vector, map, and the algorithms librarywritten
- Memory Management — new/delete, and smart pointerswritten
- Exception Handling — try/catch/throw, stack unwinding, and RAIIwritten
- C++ in Embedded Systems — what a bare-metal codebase avoids, and whywritten
Nothing left in "Planned" — this domain now covers the full arc from "C with classes" through templates, the STL, and exceptions, closing with what a bare-metal C++ codebase typically keeps and avoids from all of it.
Read top to bottom the first time through, the same way as C — each chapter here assumes the ones before it, including all of C. The final chapter, C++ in Embedded Systems, closes the loop back to Embedded C by covering exactly what a bare-metal C++ codebase typically avoids, and why.