{"id":20205754,"url":"https://github.com/raveriss/cpp02","last_synced_at":"2026-04-17T04:03:09.689Z","repository":{"id":229502941,"uuid":"776424497","full_name":"raveriss/cpp02","owner":"raveriss","description":"C++98 exercises focusing on ad-hoc polymorphism, operator overloading, and canonical forms","archived":false,"fork":false,"pushed_at":"2024-05-09T11:29:15.000Z","size":1720,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-01-13T20:47:10.126Z","etag":null,"topics":["ad-hoc-polymorphism","canonical-forms","operator-overloading"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/raveriss.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-03-23T13:23:13.000Z","updated_at":"2024-05-09T11:32:17.000Z","dependencies_parsed_at":"2024-03-24T20:21:51.280Z","dependency_job_id":"c821c7c7-7f0a-4086-87d8-101f3ce4f453","html_url":"https://github.com/raveriss/cpp02","commit_stats":null,"previous_names":["raveriss/cpp02"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/raveriss%2Fcpp02","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/raveriss%2Fcpp02/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/raveriss%2Fcpp02/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/raveriss%2Fcpp02/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/raveriss","download_url":"https://codeload.github.com/raveriss/cpp02/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":241644544,"owners_count":19996177,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ad-hoc-polymorphism","canonical-forms","operator-overloading"],"created_at":"2024-11-14T05:19:01.728Z","updated_at":"2025-12-01T08:04:53.567Z","avatar_url":"https://github.com/raveriss.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# **Projet CPP02 - École 42**\n\n## Introduction\nLe 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.\n\n## Structure du Projet\nChaque exercice explore différents aspects de la programmation en C++ et est détaillé ci-dessous avec ses composants spécifiques :\n\n### Exercice 00: Mon premier canon\n- **Dossier :** `ex00/`\n- **Fichiers :**\n  - `Makefile`\n  - `main.cpp`\n  - `Fixed.h`, `Fixed.hpp`\n  - `Fixed.cpp`\n\n#### Fonctionnalité\nIntroduction 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.\n\n### Exercice 01: Premiers pas vers une classe utile\n- **Dossier :** `ex01/`\n- **Fichiers :**\n  - `Makefile`\n  - `main.cpp`\n  - `Fixed.h`, `Fixed.hpp`\n  - `Fixed.cpp`\n\n#### Fonctionnalité\nÉ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.\n\n### Exercice 02: Maintenant, on peut parler\n- **Dossier :** `ex02/`\n- **Fichiers :**\n  - `Makefile`\n  - `main.cpp`\n  - `Fixed.h`, `Fixed.hpp`\n  - `Fixed.cpp`\n\n#### Fonctionnalité\nSurcharge des opérateurs arithmétiques et de comparaison pour permettre des calculs et des comparaisons directes entre instances de `Fixed`.\n\n### Exercice 03: BSP (Binary Space Partitioning)\n- **Dossier :** `ex03/`\n- **Fichiers :**\n  - `Makefile`\n  - `main.cpp`\n  - `Fixed.h`, `Fixed.hpp`\n  - `Fixed.cpp`\n  - `Point.h`, `Point.hpp`\n  - `Point.cpp`\n  - `bsp.cpp`\n\n#### Fonctionnalité\nUtilisation 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.\n\n## Compilation et Exécution\nPour 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.\n\n## Ressources Utilisées\n- [Apprenez à programmer en C++ sur OpenClassrooms](https://openclassrooms.com/fr/courses/1894236-apprenez-a-programmer-en-c)\n- [Programmez en orienté objet avec C++ sur OpenClassrooms](https://openclassrooms.com/fr/courses/7137751-programmez-en-oriente-objet-avec-c)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fraveriss%2Fcpp02","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fraveriss%2Fcpp02","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fraveriss%2Fcpp02/lists"}