Overview
C++ Modules is a series of 10 projects (CPP00–CPP09) in the 42 curriculum that progressively introduce C++ concepts for programmers coming from C. Each module focuses on specific language features with practical exercises.
What I Covered
| Module | Topics |
|---|---|
| CPP00–01 | Namespaces, classes, member functions, constructors/destructors, new/delete |
| CPP02–03 | Operator overloading, orthodox canonical form, inheritance |
| CPP04 | Polymorphism, abstract classes, virtual functions, interfaces |
| CPP05–06 | Exceptions, try/catch, C++ casts (static_cast, dynamic_cast, reinterpret_cast) |
| CPP07 | Function templates, class templates |
| CPP08 | STL containers (vector, list, deque), iterators, algorithms |
| CPP09 | Merge-insertion sort, reverse Polish notation, Bitcoin exchange rate calculator |
Key Concepts
- The Orthodox Canonical Form (constructor, copy constructor, assignment operator, destructor)
- Virtual dispatch tables and runtime polymorphism
- RAII (Resource Acquisition Is Initialization)
- Template metaprogramming fundamentals
- STL container selection and iterator patterns
- Exception safety guarantees