Skip to content

medatlhs/Cpp-Modules

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

57 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

42 C++ Modules (CPP00 → CPP09)

This repository contains my implementation of the 42 Network C++ Modules, a progressive introduction to modern C++ programming with a strong focus on Object-Oriented Programming (OOP), memory management, and advanced language features.

Throughout these modules, I built a deep understanding of C++ from fundamentals to advanced concepts such as polymorphism, inheritance, templates, STL, and algorithmic problem solving.


Overview

The C++ modules are designed to progressively teach the core principles of C++ and Object-Oriented Programming through practical exercises.

Each module introduces new concepts while reinforcing previous knowledge.


What I Learned

🔹 Core C++ Fundamentals (CPP00 - CPP01)

  • Namespaces and scope management
  • Classes and object-oriented design
  • Constructors and destructors
  • Member functions and encapsulation
  • Memory allocation (stack vs heap)
  • Pointers and references
  • File streams and basic I/O

🔹 Object-Oriented Programming (CPP01 - CPP04)

  • Deep understanding of OOP principles
  • Encapsulation, abstraction, inheritance, polymorphism
  • Operator overloading
  • Canonical form (Rule of 3 / Rule of 5 concepts awareness)
  • Class relationships (composition & aggregation)
  • Abstract classes and interfaces

🔹 Advanced OOP & Memory Control (CPP04 - CPP06)

  • Subtype polymorphism
  • Virtual functions and runtime polymorphism
  • Exception handling (try / catch / throw)
  • Type casting (static, dynamic, reinterpret, const_cast)
  • Memory safety and controlled object behavior

🔹 Templates & Generic Programming (CPP07)

  • Function and class templates
  • Generic programming concepts
  • Code reuse through abstraction
  • Compile-time polymorphism

🔹 STL & Algorithms (CPP08 - CPP09)

  • Standard Template Library (STL)
  • Containers (vector, map, stack, etc.)
  • Iterators and algorithm usage
  • Data structure manipulation
  • Sorting and searching algorithms
  • Algorithmic thinking and optimization

🔹 Algorithms (CPP09 Focus)

In the final module, I implemented and worked with:

  • Efficient sorting algorithms (hybrid approaches)
  • Container-based data manipulation
  • Performance-aware algorithm design
  • Input parsing and large dataset processing

Tech Stack

  • Language: C++98 standard
  • Paradigm: Object-Oriented Programming (OOP)
  • STL (Standard Template Library)
  • Unix-based compilation (Makefiles)
  • Memory management without modern smart pointers (manual control)

About

C++ learning journey focused on OOP, inheritance, polymorphism, templates, and STL through hands-on modules.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors