The goal of these modules is to introduce you to Object-Oriented Programming. This will be the starting point of your C++ journey. Many languages are recommended to learn OOP. We decided to choose C++ since it’s derived from your old friend C. Because this is a complex language, and in order to keep things simple, your code will comply with the C++98 standard.
We are aware modern C++ is way different in a lot of aspects. So if you want to become a proficient C++ developer, it’s up to you to go further after the 42 Common Core!
You will discover new concepts step-by-step. The exercises will progressively increase in complexity.
-
cpp00: Namespaces, classes, member functions, stdio streamsinitialization lists, static, const, and some other basic stuff
-
cpp01: Memory allocation, pointers to members, references, switch statement
-
cpp02: Ad-hoc polymorphism, operator overloading and Orthodox Canonical class form
-
cpp03: Inheritance
-
cpp04: Subtype polymorphism, abstract classes, interfaces
-
cpp05: Repetition and Exceptions
-
cpp06: C++ casts
-
cpp07: C++ templates
-
cpp08: Templated containers, iterators, algorithms
-
cpp09: STL
- C++11 (and derived forms) and Boost libraries are forbidden.
- The using namespace <ns_name> and friend keywords are forbidden
- From Module 02 to Module 09, your classes must be designed in the Orthodox Canonical Form, except when explicitely stated otherwise.
- You are allowed to use the STL in the Module 08 and 09 only. That means: no Containers (vector/list/map/and so forth) and no Algorithms (anything that requires to include the header) until then.
To compile, navigate to the exercise directory and run:
$ make Then, execute the newly compiled program.