An open API service indexing awesome lists of open source software.

https://github.com/raveriss/cpp02

C++98 exercises focusing on ad-hoc polymorphism, operator overloading, and canonical forms
https://github.com/raveriss/cpp02

ad-hoc-polymorphism canonical-forms operator-overloading

Last synced: 29 days ago
JSON representation

C++98 exercises focusing on ad-hoc polymorphism, operator overloading, and canonical forms

Awesome Lists containing this project

README

          

# **Projet CPP02 - École 42**

## Introduction
Le module CPP02 est centré sur le polymorphisme ad-hoc, la surcharge d’opérateurs et l'introduction à la forme canonique de Coplien en C++. Ce module est conçu pour solidifier les fondations en C++ en explorant des aspects plus avancés de la manipulation d'objets et d'opérateurs.

## Structure du Projet
Chaque exercice explore différents aspects de la programmation en C++ et est détaillé ci-dessous avec ses composants spécifiques :

### Exercice 00: Mon premier canon
- **Dossier :** `ex00/`
- **Fichiers :**
- `Makefile`
- `main.cpp`
- `Fixed.h`, `Fixed.hpp`
- `Fixed.cpp`

#### Fonctionnalité
Introduction aux nombres à virgule fixe, avec des opérations de base pour gérer ces types de données en C++, qui n'existent pas nativement dans le langage.

### Exercice 01: Premiers pas vers une classe utile
- **Dossier :** `ex01/`
- **Fichiers :**
- `Makefile`
- `main.cpp`
- `Fixed.h`, `Fixed.hpp`
- `Fixed.cpp`

#### Fonctionnalité
Évolution de la classe `Fixed` pour permettre des conversions depuis et vers les types `int` et `float`, augmentant ainsi l'utilité de la classe avec des constructeurs et des méthodes adaptés.

### Exercice 02: Maintenant, on peut parler
- **Dossier :** `ex02/`
- **Fichiers :**
- `Makefile`
- `main.cpp`
- `Fixed.h`, `Fixed.hpp`
- `Fixed.cpp`

#### Fonctionnalité
Surcharge des opérateurs arithmétiques et de comparaison pour permettre des calculs et des comparaisons directes entre instances de `Fixed`.

### Exercice 03: BSP (Binary Space Partitioning)
- **Dossier :** `ex03/`
- **Fichiers :**
- `Makefile`
- `main.cpp`
- `Fixed.h`, `Fixed.hpp`
- `Fixed.cpp`
- `Point.h`, `Point.hpp`
- `Point.cpp`
- `bsp.cpp`

#### Fonctionnalité
Utilisation des classes `Fixed` et `Point` pour déterminer si un point donné se trouve à l'intérieur d'un triangle défini par trois points.

## Compilation et Exécution
Pour compiler un exercice, naviguez dans le dossier correspondant et utilisez `make`. Les commandes typiques pour exécuter les programmes sont `./nom_executable`. Suivez les instructions spécifiques dans chaque dossier pour plus de détails sur l'exécution.

## Ressources Utilisées
- [Apprenez à programmer en C++ sur OpenClassrooms](https://openclassrooms.com/fr/courses/1894236-apprenez-a-programmer-en-c)
- [Programmez en orienté objet avec C++ sur OpenClassrooms](https://openclassrooms.com/fr/courses/7137751-programmez-en-oriente-objet-avec-c)