This repository is part of the 42 School curriculum and introduces the C++ programming language. It focuses on Object-Oriented Programming (OOP) concepts and modern C++ features, building on the foundations of C.
The project is divided into 10 modules, each targeting a specific aspect of C++ through progressively challenging exercises:
- CPP00: Introduction to OOP basics: namespaces, classes, member functions, initialization, static/const usage
- CPP01: Memory management: allocation, references, pointers to members, and control flow with switch
- CPP02: Ad-hoc polymorphism: operator overloading and Orthodox Canonical Form
- CPP03: Inheritance: class hierarchies and behavior reuse
- CPP04: Subtype polymorphism: abstract classes and interfaces
- CPP05: Exceptions: error handling and program robustness
- CPP06: Type casting: safe and explicit conversions between types
- CPP07: Templates: generic programming with parameterized types
- CPP08: STL containers and algorithms: using standard templates effectively
- CPP09: Advanced STL: applying containers and algorithms to practical problems
-
Clone the repository:
git clone https://github.com/cmunoz-g/CPP-Modules.git
-
Navigate to a module:
cd CPP-Modules/CPP0XReplace
CPP0Xwith the desired module number. -
Compile and run: Each exercise provides a
Makefile. Build with:make
Then execute the binary:
./program_name