Skip to content

amauricoder/42_CPP

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🧠 42 C++ Modules

Welcome to the 42 C++ Modules repository! This project is a part of the 42 Cursus and is designed to progressively introduce and deepen the understanding of the C++ programming language—from its most basic syntax and OOP principles to advanced topics like templates, STL, and performance optimization.

Each module builds upon the knowledge of the previous one, reinforcing C++ fundamentals while exploring new concepts.


📚 Modules Overview

Here’s a high-level summary of what you’ll find in each module:

🚀 CPP00 - Basics of C++

  • Introduction to C++ syntax, namespaces, and I/O streams.
  • Understanding basic classes, member functions, and attributes.
  • First look at OOP in C++.

🚀 CPP01 - Memory and References

  • Stack vs heap, pointers, and references.
  • File I/O and working with streams.
  • Deeper exploration of object handling.

🚀 CPP02 - Ad-hoc Polymorphism

  • Operator overloading and fixed-point arithmetic.
  • Introduction to static polymorphism and class interactions.

🚀 CPP03 - Inheritance Basics

  • Creating base and derived classes.
  • Constructors, destructors, and the importance of inheritance.

🚀 CPP04 - Abstract Classes and Polymorphism

  • Pure virtual functions, interfaces, and deep copies.
  • Dynamic polymorphism with base class references/pointers.

🚀 CPP05 - Exceptions and Operator Overload

  • Custom exceptions and safe error handling.
  • More operator overloading with practical use cases.

🚀 CPP06 - Type Conversion and RTTI

  • Casting (static_cast, dynamic_cast, etc.) and runtime type identification.
  • Polymorphism safety and serialization logic.

🚀 CPP07 - Templates

  • Function and class templates.
  • Generic programming and type-agnostic utilities.

🚀 CPP08 - STL Containers and Iterators

  • Using vector, list, deque, and iterators.
  • Functors, algorithms, and container-based design.

🚀 CPP09 - Performance and Container Efficiency

  • Parsing and sorting with list, deque, and map.
  • Time complexity awareness and performance comparison.

📁 Repository Structure

Each module is organized into its own folder:

/CPP00
/CPP01
...
/CPP09

Each module contains a README.md explaining its goals, topics, and exercises, along with the source code.


🛠️ Requirements

  • C++98 standard compliance.
  • Use make for all compilations.
  • Proper memory management (no leaks).
  • Follow the Orthodox Canonical Form where required.

🏁 Final Thoughts

This repository is not only a learning journey through the C++ language but also a solid preparation for real-world development. By the end of CPP09, you’ll have touched most of the foundational and intermediate concepts in C++.

About

All CPP modules in one main repository.

Topics

Resources

Stars

Watchers

Forks

Packages

No packages published