📚 Project Overview
This repository contains a comprehensive series of C++ modules developed as part of the 42 School curriculum, designed to progressively build C++ programming skills.
🎯 Learning Objectives
- Master C++ programming fundamentals
- Understand object-oriented programming principles
- Learn advanced C++ features and best practices
📋 Module Breakdown
Focus: Introduction to C++ syntax and basic concepts
Key Topics:
- Namespaces
- Classes and member functions
- Basic I/O operations
- Memory management fundamentals
Focus: Memory allocation and references
Key Topics:
- Dynamic memory allocation
- References vs. pointers
- Object lifecycle
- Constructors and destructors
Focus: Ad-hoc polymorphism
Key Topics:
- Operator overloading
- Canonical class form
- Fixed-point number representation
Focus: Object-oriented programming principles
Key Topics:
- Base and derived classes
- Inheritance mechanisms
- Access specifiers
Focus: Advanced polymorphic behaviors
Key Topics:
- Abstract classes
- Virtual functions
- Interfaces
- Runtime polymorphism
Focus: Robust error management
Key Topics:
- Exception handling
- Custom exception classes
- Error prevention techniques
Focus: Type conversions and safety
Key Topics:
- Static casting
- Dynamic casting
- Const casting
- Reinterpret casting
Focus: Generic programming
Key Topics:
- Function templates
- Class templates
- Template specialization
Focus: Standard Template Library
Key Topics:
- Containers
- Iterators
- Algorithms
- Container manipulation
Focus: Complex STL usage
Key Topics:
- Advanced algorithm implementations
- Performance optimization
- Real-world STL applications
🛠 Compilation
# General compilation command
make
# Clean object files
make clean
# Full clean
make fclean