Skip to content

Exploring advanced C++ and OOP concepts like SOLID, casting operators, templates (value, functions, and classes), exception handling using throw() and try/catch blocks, and so on

Notifications You must be signed in to change notification settings

pin3dev/42_CPP_Modules_05-09

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

97 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CPP-Modules_05-09 100/100

Table of Contents

Overview

The cpp_modules_05-09 projects revolves around mastering advanced C++ concepts such as:

  • Exceptions (throw, try/catch)
  • Literals values
  • Regular Expressions Concept (Regex)
  • Casting Operators (static_cast, dynamic_cast, const_cast, reinterpret_cast)
  • Templates Functions
  • Templates Classes
  • Templates Values
  • Standard Template Library (STL)
  • Containers (stack, list, vector, map, deque...)
  • Iterators
  • Composition vs Inheritance
  • Reverse Polish Notation & Polish Notation
  • Merge-Insertion Sort Algorithm (The Ford-Johnson Sorting Algorithm)

Guidelines

Compilation:

  • Compile your code using c++ with flags -Wall -Wextra -Werror -std=c++98
  • Exercise directories: ex00, ex01, ..., exn
  • Separate Makefile within each exercise directory.
  • Use UpperCamelCase for class names.

Forbidden:

  • Functions: *printf(), *alloc(), free()
  • External libraries like C++11, Boost
  • Using namespace <ns_name> and friend keywords.
  • Until you reach the Module 08: STL, meaning no Containers (vector list map and so forth) and no Algorithms (anything that requires to include the <algorithm> header).
  • Memory leaks when using new.
  • Function implementations in header files (except for function templates).

Allowed:

  • Use standard library extensively.
  • Additional files allowed if necessary.

Rule:

Follow the Orthodox Canonical Form for classes Modules 02-09, which must implement four essential member functions:

  • Default constructor
  • Copy constructor
  • Copy assignment operator
  • Destructor
  • Split class code into two files: Header file .hpp/.h for class definition, and Source file .cpp for implementation

Features

Module 05: Exception Handling, Custom Exceptions, Error Propagation

Module 06: Casting Operators, Type Conversion, Literals Values

Module 07: Template Functions, Templates Classes, Iterators

Module 08: STL, Containers, Algorithmic Efficiency

Module 09: RPN, Merge-Insertion Sort Algorithm, Advanced STL, Performance Optimization

Execution

Each exercise's compilation is done separately by running the Makefile within the exercise's folder.

#in the ex00, ex01, ex02 or ex03 directory
make

Links2Study

Grade Modules Lang Type Links and Subjects
⭐⭐ CPP05 CPP09 🇧🇷 📄 SOLID Conceitos
⭐⭐ CPP05 CPP09 🇧🇷 📄 SOLID
⭐⭐ CPP05 CPP09 🇧🇷 📄 O que é SOLID
⭐⭐ CPP05 CPP09 🇧🇷 📄 OOP - Herança x Composição
CPP05 CPP09 🇺🇸 📄 Composition vs Inheritance
🤩 CPP05 CPP09 🇺🇸 📄 Composition in OOPS
🤩 CPP06 🇺🇸 📄 Casting Operators in C++
⭐⭐ CPP06 🇧🇷 📄 TIPOS DE LITERAIS EM C / C++
🤩 CPP06 🇺🇸 📄 Literals In C++
🤩 CPP06 CPP09 🇺🇸 📄 Regex
🤩 CPP08 CPP09 🇺🇸 📹 C++ Standard Template Library STL
CPP09 🇺🇸 📄 Polish Notation
CPP09 🇺🇸 📄 Reverse Polish Notation
🤩 CPP09 🇺🇸 📹 Reverse Polish Notation
CPP09 🇺🇸 📹 Reverse Polish Notation Using Stacks
🤩 CPP09 🇺🇸 📹 Introduction to Reverse Polish Notation (RPN)
🤩 CPP09 🇺🇸 📹 Binary Search animated
⭐⭐ CPP09 🇺🇸 📚 On the Average Case of MergeInsertion
⭐⭐ CPP09 🇺🇸 📄 Python: Sort unsorted numbers using Merge-insertion sort
⭐⭐ CPP09 🇺🇸 📄 Ford-Johnson merge-insertion sort
⭐⭐ CPP09 🇺🇸 📄 Merge Sort vs. Insertion Sort

✅ OK | ⭐ Good | ⭐⭐ VeryGood | 🤩 Amazing | 🔖 Bookmarked2Read
📄 Blog | 💭 Chat | 📹 Video | 📚 Book_&_ScientificPapers

About

Exploring advanced C++ and OOP concepts like SOLID, casting operators, templates (value, functions, and classes), exception handling using throw() and try/catch blocks, and so on

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published