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.

Why this domain is separate from C

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

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.

Scope note

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.