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