42 Heilbronn school projects about learning CPP.
The goal of these modules is to learn C++ in a practical way. Like any other project at 42, we learn-by-doing. Each exercise has its own specific topic and requirements. You'll find those requirements inside each module folder.
The project covers the following topics about CPP:
We started from the basics about the C++98 standard. The first modules are simply a practice about classes definition and implementation, constants qualification, operator overloading and basic input/output operations.
During the modules we learn the basics about Object-Oriented Programming: encapsulation, inheritance, polymorphism and abstraction. For example in the module_03 we leanred how to "solve" the so cllaed diamond problem about multiple inheritance.
Coming from C programming, this is a new and quite useful feature which comes with C++. In the module_05 we learned how to use the try catch statement and how to handle exceptions. Error handling has never been easier.
The module_06 is about type casting: static_cast, dynamic_cast and reinterpret_cast in action.
Another very important feature about C++ are the template functions and classes. In the module_07 and _08 we learn this new concept by applying it into mini-projects like the creation of a Mutant stack.
In the last modules, in particular in the module_08 and _09 we learned the Standard Template Library along with the algorithm header and the C++98 containers. A relevant project is the last one about the implementation of the merge-insertion sort algorithm using 2 different containers (since we had to measure the speed) and template classes.
Like in any other project of 42, the memory allocated by has to be properly freed. No leaks are tolerated during evaluation. In this modules I used valgrind to check eventual memory leaks and memory inconsistences.