This repository contains the C++ (CPP) modules completed as part of the curriculum at 42 School. Each module consists of a series of exercises designed to reinforce and expand my knowledge of C++ programming concepts, ranging from basic OOP to advanced STL algorithms.
- ex00: String manipulation and command-line argument handling.
- ex01: Classes, Object instantiation, Basic I/O, String manipulation.
- ex02: File recreation, C++ programming, Object-oriented design.
- OOP in CPP - GeeksforGeeks
- std::cin.getline() vs. std::cin - Stack Overflow
- atoi() in cpp strings - Stack Overflow
- string.length() vs. string.size() - Stack Overflow
- Constructors in CPP - GeeksforGeeks
- Destructors in CPP - GeeksforGeeks
- C++ iomanip Library - YouTube
- ex00: Stack vs. Heap memory allocation, Destructors.
- ex01: Arrays of Objects, Memory Allocation (array of objects).
- ex02: Pointers, References, Memory Addresses.
- ex03: Composition, Aggregation, Object Relationships.
- ex04: File I/O, Content copy, Error Handling.
- ex05: Pointers to Member Functions, Enumeration.
- ex06: Switch Statement, Filtering, Logging (Harl Filter).
- References in CPP - GeeksforGeeks
- Pointers to Member Functions - CodeGuru
- How to Read File Line by Line - Medium
- C++ File Handling - Guru99
- ex00: Fixed-point numbers, Orthodox Canonical Form.
- ex01: Constructors (int/float), Member Functions (toFloat, toInt), Operator Overloading.
- ex02: Operator Overloading (Comparison, Arithmetic, Increment/Decrement), Static Member Functions (min, max).
- ex03: Binary Space Partitioning (BSP), Fixed-point arithmetic, Triangle Point Inclusion Test.
- Fixed Point Number Representation - CS61c (Berkeley)
- Back To Basics! Fixed Point Numbers - YouTube
- Understanding Floating Point Numbers - Cprogramming
- Copy Constructor in C++ - GeeksforGeeks
- Overloading the assignment operator - LearnCpp
- IEEE 754 Standard for Floating Point - YouTube
- ex00: Class implementation.
- ex01: Inheritance, Constructors/Destructors Chaining.
- ex02: Overriding Member Functions.
- ex03: The Diamond Problem, Multiple Inheritance, Accessing Attributes from Parent Classes.
- Inheritance And Polymorphism - YouTube
- Multiple Inheritance in C++ - GeeksforGeeks
- Diamond Problem & Hybrid Inheritance - YouTube
- ex00: Polymorphism, Inheritance, Virtual Functions.
- ex01: Memory Management, Deep Copy vs Shallow Copy.
- ex02: Abstract Classes.
- ex03: Interfaces / Pure Abstract Classes.
- Polymorphism (Compile vs Run time) - YouTube
- Virtual Functions & Abstract Classes - YouTube
- Difference between abstract & pure abstract class - Stack Overflow
- How to copy/clone a STL List - thispointer
- ex00: Exception handling, class design.
- ex01: Custom exception classes, resource protection.
- ex02: Abstract classes, inheritance, execution logic.
- ex03: Factory method pattern, string manipulation.
- Exception Handling Tutorial - NeuralNine (YouTube)
- Throwing Exceptions in C++ - RollBar
- Standard Exceptions (std::exception) - cppreference
- Factory Method in C++ - Medium
- ex00: Type conversion, static_cast.
- ex01: Serialization, reinterpret_cast.
- ex02: Dynamic casting, type identification (dynamic_cast).
- Type Conversion in C++ - Scaler
- Type Punning in C++ - The Cherno
- C++ Casting (static_cast & dynamic_cast) - Mike Shah
- What is uintptr_t? - Stack Overflow
- ex00: Template functions (swap, min, max).
- ex01: Iterating with templates.
- ex02: Template classes.
- C++ Templates Guide - Programiz
- Why use a "tpp" file? - Stack Overflow
- Template Specialization - GeeksforGeeks
- ex00: Function templates, container manipulation.
- ex01: std::max, std::min, std::sort, iterators.
- ex02: Iterators, template specialization (Mutant Stack).
- Back To Basics: C++ Containers - javidx9 (YouTube)
- The C++ Standard Template Library (STL) - GeeksforGeeks
- Finding Max Element in Vector - Stack Overflow
- ex00: Bitcoin Exchange (File manipulation, std::map, date parsing).
- ex01: Reverse Polish Notation (RPN), std::stack.
- ex02: PmergeMe (Ford-Johnson merge sort algorithm), std::vector, std::deque.
- Reverse Polish Notation and The Stack - Computerphile
- Ford-Johnson Merge-Insert Sort - Wikipedia
- Calculating Execution Time - Stack Overflow
- std::map Usage - cppreference
Follow these steps to run the exercises on your local machine.
- GCC or Clang compiler
- Make
- Clone the repository:
git clone https://github.com/mohammedali1337/42-CPP-Modules.git