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