A collection of C++ projects completed as part of the 42 curriculum.
The modules introduce object-oriented programming and gradually progress toward templates, STL containers, algorithms, and advanced data-processing problems.
| Module | Main Topics |
|---|---|
CPP00 |
Namespaces, classes, member functions, initialization lists |
CPP01 |
Memory allocation, pointers, references, file streams |
CPP02 |
Orthodox Canonical Form, operator overloading, fixed-point numbers |
CPP03 |
Inheritance and class hierarchies |
CPP04 |
Polymorphism, abstract classes, interfaces, deep copying |
CPP05 |
Exceptions, forms, and bureaucratic workflows |
CPP06 |
C++ type casting and serialization |
CPP07 |
Function and class templates |
CPP08 |
STL containers, iterators, and algorithms |
CPP09 |
Bitcoin Exchange, Reverse Polish Notation, and merge-insertion sort (Ford-Johnson Algorithm) |
cpp-learningpath/
├── CPP00/
├── CPP01/
├── CPP02/
├── CPP03/
├── CPP04/
├── CPP05/
├── CPP06/
├── CPP07/
├── CPP08/
└── CPP09/
Each module contains multiple exercises with its own source files and Makefile.
Navigate to an exercise directory:
cd CPP00/ex00
makeRun the generated executable:
./program_nameThe executable name depends on the exercise.
| Command | Description |
|---|---|
make |
Compile the exercise |
make clean |
Remove object files |
make fclean |
Remove object files and executable |
make re |
Recompile the exercise |
- Object-oriented programming
- Encapsulation and abstraction
- Inheritance and polymorphism
- Memory management
- Operator overloading
- Exception handling
- Type casting
- Templates
- STL containers and iterators
- Sorting and data-processing algorithms