Récapitulatif : Point Manager
Fait partie de la section Programmation Orientée Objet du Journey C de Coddy. Leçon 11 sur 61.
Défi
FacileConstruisons un module Point complet qui gère une coordonnée 2D. Ce défi récapitulatif rassemble tout ce que vous avez appris sur le fait de traiter les structures comme des objets : utiliser des pointeurs pour modifier l'état et des pointeurs const pour les opérations en lecture seule.
Vous allez créer trois fichiers :
point.h: déclarer une structurePointavec deux membres entiers :xety. Déclarer également deux fonctions qui jouent le rôle de méthodes :point_move: prend un pointeur vers Point ainsi que deux entiers (dxetdy), et déplace la position du point en ajoutant ces valeurs àxetypoint_print: prend un pointeurconstvers Point et affiche ses coordonnées (cette fonction ne doit pas modifier le point)
POINT_H.point.c: implémenter les deux fonctions. Réfléchissez attentivement à la fonction qui a besoin d'un pointeur ordinaire (pour modifier le point) et à celle qui utilise un pointeurconst(pour lire sans risque de modification).main.c: créer un Point, le déplacer et afficher sa position à différentes étapes.
Vous recevrez quatre entrées entières : le x initial, le y initial, la valeur de dx (quantité du déplacement horizontal) et la valeur de dy (quantité du déplacement vertical).
Dans votre fichier principal, initialisez un Point avec les coordonnées de départ, affichez sa position initiale, déplacez-le selon les valeurs données, puis affichez sa nouvelle position.
La fonction point_print doit produire une sortie dans ce format :
Point: ({x}, {y})Par exemple, avec les entrées 3, 5, 2 et -1, la sortie serait :
Point: (3, 5)
Point: (5, 4)Essayez vous-même
#include <stdio.h>
#include "point.h"
int main() {
// Lire les valeurs d'entrée
int x, y, dx, dy;
scanf("%d", &x);
scanf("%d", &y);
scanf("%d", &dx);
scanf("%d", &dy);
// TODO: Créer un Point avec les coordonnées initiales (x, y)
// TODO: Afficher la position initiale en utilisant point_print
// TODO: Déplacer le point de (dx, dy) en utilisant point_move
// TODO: Afficher la nouvelle position en utilisant point_print
return 0;
}
Toutes les leçons de Programmation Orientée Objet
1Bases de la programmation modulaire
Fichiers d'en-têteGardes d'inclusionFichiers sourcesFonctions statiquesRécapitulatif : Calculatrice modulaire4Encapsulation
Concept des pointeurs opaquesDéfinir des structures opaquesGetters et settersValidation dans les settersRécapitulatif : La boîte secrète2Objets et méthodes
Structs comme objetsLe pointeur 'Self'Rigueur du mot-clé constPointeur vs ValeurMéthodes utilitairesRécapitulatif : Point Manager5Projet : Compte bancaire simple
Configuration du projetImplémentation du compte8Polymorphisme
Pointeurs de fonctions dans les structuresSimulation de méthodesLe concept d'interfaceImplémentation d'interfacesItération polymorphiqueRécapitulatif : Greeter11Patrons de conception en C
Patron SingletonPatron FabriquePatron ItérateurRécapitulatif : Logger Factory3Cycle de vie des objets
Pattern de constructeurPattern de destructeurInitialisation sur la pileCopie profondeRécapitulatif : String Wrapper6Héritage par composition
Imbrication de structLa règle du premier membreAccès aux membres parentsUpcastingRécapitulatif : Hiérarchie des formes9Projet : Dessinateur de formes
Aperçu du projetImplémentation du cercleImplémentation du rectangleUtilisation polymorpheConteneur de formesEntraînez-vous par vous-même : Compilateur C en ligne