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
- Host: GitHub
- URL: https://github.com/raveriss/cpp02
- Owner: raveriss
- Created: 2024-03-23T13:23:13.000Z (almost 2 years ago)
- Default Branch: main
- Last Pushed: 2024-05-09T11:29:15.000Z (over 1 year ago)
- Last Synced: 2025-01-13T20:47:10.126Z (12 months ago)
- Topics: ad-hoc-polymorphism, canonical-forms, operator-overloading
- Language: C++
- Homepage:
- Size: 1.64 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
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)