Skip to content

mdbentaleb/42_CPP_Modules

Repository files navigation

πŸ“š 42 C++ Modules

Image

A collection of 42 C++ modules to learn and master πŸ–₯️ object-oriented programming, πŸ—‚οΈ data structures, 🧩 algorithms, and βš™οΈ modern C++ concepts step by step.


πŸ“‚ Modules Structure

🟦 CPP_00

  • ex00: Introduction to C++ and basic syntax. Learn about variables, functions, and simple I/O.
  • ex01: Working with classes and objects. Basics of constructors, destructors, and encapsulation.
  • ex02: Operator overloading and static members. Recreate missing files using provided headers and logs.

🟦 CPP_01

  • ex00: Memory allocation and basic class design. Implement a Zombie class with stack vs heap usage.
  • ex01: Create a horde of Zombies. Allocate multiple objects and manage memory correctly.
  • ex02: Understanding pointers and references. Manipulate a string via pointer and reference.
  • ex03: Class interactions. Implement Weapon, HumanA, and HumanB with different ownership semantics.
  • ex04: File manipulation with strings. Replace occurrences of a substring in a file.
  • ex05: Member function pointers. Implement Harl with different complaint levels.
  • ex06: Filtered output using switch statements. Display Harl’s messages based on severity levels.

🟦 CPP_02

  • ex00: Fixed-point numbers. Implement constructors, copy, and accessors.
  • ex01: Enhanced Fixed class. Add int/float constructors, conversions, and stream output.
  • ex02: Operator overloading. Arithmetic, comparison, increment/decrement, min/max.
  • ex03: Point class and BSP. Check if a point is inside a triangle.

🟦 CPP_03

  • ex00: Learn basic class design and object management with simple attributes.
  • ex01: Explore inheritance by extending a class and modifying behavior.
  • ex02: Deepen inheritance understanding with further specialization.
  • ex03: Practice multiple inheritance and handling complex class hierarchies.

🟦 CPP_04

  • ex00: Learn basic polymorphism with base and derived classes.
  • ex01: Implement dynamic memory in classes and test deep copies.
  • ex02: Work with abstract classes to prevent direct instantiation.
  • ex03: Apply interfaces and manage objects through abstract types.

🟦 CPP_05

  • ex00: Learn class design with constraints, exceptions, and basic error handling.
  • ex01: Implement interaction between classes and enforce rules through exceptions.
  • ex02: Work with abstract base classes and specialized derived forms that perform actions.
  • ex03: Automate object creation and manage polymorphic objects.

🟦 CPP_06

  • ex00: Work with type conversions and casts.
  • ex01: Learn serialization by converting pointers to integer representations and back.
  • ex02: Identify real object types at runtime using polymorphism without typeid.

🟦 CPP_07

  • ex00: Learn function templates; implement generic swap, min, and max functions.
  • ex01: Apply function templates to arrays; implement a generic iter function.
  • ex02: Practice class templates; implement a generic Array class with dynamic allocation.

🟦 CPP_08

  • ex00: Learn function templates with containers; implement easyfind to search for integers in any container.
  • ex01: Practice custom container design; implement a Span class with range operations.
  • ex02: Extend STL containers; implement an iterable stack supporting all stack operations plus iterators.

🟦 CPP_09

  • ex00: Use file I/O and associative containers to compute bitcoin values by date from a CSV database.
  • ex01: Apply stack-based algorithms; implement an RPN (Reverse Polish Notation) calculator using containers.
  • ex02: Practice advanced sorting algorithms using Ford-Johnson sort on sequences and measure performance.

About

πŸ“š A collection of 42 C++ modules to learn and master πŸ–₯️ object-oriented programming, πŸ—‚οΈ data structures, 🧩 algorithms, and βš™οΈ modern C++ concepts step by step.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors