Skip to content

Progressive C++ exercises covering OOP, memory management, inheritance, templates, exceptions, and STL.

Notifications You must be signed in to change notification settings

zelhajou/ft_cpp_modules

Repository files navigation

42 Cpp Modules

This repository contains the source code for the 42 Cpp modules. Each module is a different project that covers a specific topic in C++ programming. The modules are part of the 42 Cpp curriculum and are meant to be completed in order.

Modules Overview

# Module Introduction Topics Covered Language Status Comments
00 Module 00 Introduction to C++ Namespaces, classes, member functions, stdio streams, initialization lists, static, const C++ ✅ 80 Basic C++ concepts
01 Module 01 Memory allocation, pointers Memory allocation, pointers to members, references, switch statement C++ ✅ 100 Intermediate concepts
02 Module 02 Ad-hoc polymorphism, operator overloading Ad-hoc polymorphism, operator overloading, Orthodox Canonical class form C++ ✅ 80 Advanced concepts
03 Module 03 Inheritance and Encapsulation Inheritance, constructors and destructors chaining, class hierarchies, access specifiers, special member functions C++ ✅ 80 Inheritance and encapsulation concepts
04 Module 04 Polymorphism, Abstract classes Abstract classes Polymorphism, abstract classes, interfaces, pure virtual functions C++ ✅ 80 Polymorphism and abstract concepts
05 Module 05 Repetition and Exceptions Try/catch blocks, exceptions C++ ✅ 100 Exception handling
06 Module 06 C++ casts Different types of casts (static_cast, dynamic_cast, reinterpret_cast, const_cast) C++ Type conversion
07 Module 07 C++ templates Function templates, class templates C++ ✅ 100 Template programming
08 Module 08 Templated containers, iterators, algorithms STL, containers, algorithms C++ ✅ 100 Standard Template Library
09 Module 09 STL Standard Template Library C++ ✅ 100 Advanced STL usage

Exercises Overview

Module Exercise Objectives Status
00 Exercise 00: Megaphone Implement a simple program to repeat input in uppercase ✅ Done
00 Exercise 01: My Awesome PhoneBook Create a simple phonebook using classes and object-oriented programming ✅ Done
00 Exercise 02: The Job Of Your Dreams (Optional) Recreate a lost file for a banking application ⏭ Skipped
01 Exercise 00: BraiiiiiiinnnzzzZ Introduction to memory allocation and class implementation ✅ Done
01 Exercise 01: Moar brainz! More practice with memory allocation and pointers ✅ Done
01 Exercise 02: HI THIS IS BRAIN Advanced memory management techniques ✅ Done
01 Exercise 03: Unnecessary violence Implementing classes with complex behaviors ✅ Done
01 Exercise 04: Sed is for losers More advanced C++ features and file operations ✅ Done
01 Exercise 05: Harl 2.0 Working with advanced class implementations ✅ Done
01 Exercise 06: Harl filter Filtering and managing complex data structures ✅ Done
02 Exercise 00: My First Class in Orthodox Canonical Form Implementing a class in canonical form ✅ Done
02 Exercise 01: Towards a more useful fixed-point number class Enhancing the fixed-point number class ✅ Done
02 Exercise 02: Now we're talking Implementing advanced features in the fixed-point class ✅ Done
02 Exercise 03: BSP (Optional) Implementing Binary Space Partitioning ⏭ Skipped
03 Exercise 00: Aaaaand... OPEN! Implementing a basic class with specific attributes and functions ✅ Done
03 Exercise 01: Serena, my love! Creating a derived class with specific constructors and functions ✅ Done
03 Exercise 02: Repetitive work Implementing another derived class with specific attributes and functions ✅ Done
03 Exercise 03: Now it’s weird! (Optional) Creating a complex class that inherits from multiple classes ⏭ Skipped
04 Exercise 00: Polymorphism Implementing polymorphism in classes ✅ Done
04 Exercise 01: I don’t want to set the world on fire Implementing deep copies and managing dynamic memory ✅ Done
04 Exercise 02: Abstract class Implementing abstract classes to prevent instantiation of base classes ✅ Done
04 Exercise 03: Interface & recap (Optional) Implementing interfaces and ensuring understanding of module concepts ⏭ Skipped
05 Exercise 00: Mommy, when I grow up, I want to be a bureaucrat! Implementing exception handling in a bureaucrat class ✅ Done
05 Exercise 01: Form up, maggots! Creating a Form class with exception handling ✅ Done
05 Exercise 02: No, you need form 28B, not 28C... Implementing abstract classes with concrete derived classes ✅ Done
05 Exercise 03: At least this beats coffee-making Creating an Intern class to generate forms ✅ Done
06 Exercise 00: Conversion of scalar types Implementing type conversion between scalar types ✅ Done
06 Exercise 01: Serialization Converting between pointers and integer types ✅ Done
06 Exercise 02: Identify real type Identifying actual types at runtime ✅ Done
07 Exercise 00: Start with a few functions Creating template functions for basic operations ✅ Done
07 Exercise 01: Iter Implementing a template function to iterate over arrays ✅ Done
07 Exercise 02: Array Creating a template class for arrays ✅ Done
08 Exercise 00: Easy find Implementing a template function to find elements in containers ✅ Done
08 Exercise 01: Span Creating a class to store integers and find spans ✅ Done
08 Exercise 02: Mutated abomination Modifying the std::stack container to make it iterable ✅ Done
09 Exercise 00: Bitcoin Exchange Creating a program to calculate bitcoin value based on exchange rates ✅ Done
09 Exercise 01: Reverse Polish Notation Implementing a program to evaluate RPN expressions ✅ Done
09 Exercise 02: PmergeMe Creating a program using the merge-insert sort algorithm ✅ Done

Rules

About

Progressive C++ exercises covering OOP, memory management, inheritance, templates, exceptions, and STL.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published