Récapitulatif : Point Manager
Fait partie de la section Object Oriented Programming 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 traitement des structures comme des objets — en utilisant 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éclarez une structurePointavec deux membres entiers :xety. Déclarez également deux fonctions qui agissent comme des 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émentez les deux fonctions. Réfléchissez bien à quelle fonction a besoin d'un pointeur régulier (pour modifier le point) et laquelle utilise un pointeurconst(pour lire en toute sécurité sans modification).main.c: Créez un Point, déplacez-le et affichez sa position à différentes étapes.
Vous recevrez quatre entrées entières : le x initial, le y initial, la valeur dx (quantité de déplacement horizontal) et la valeur dy (quantité de déplacement vertical).
Dans votre fichier principal, initialisez un Point avec les coordonnées de départ, affichez sa position initiale, déplacez-le des quantités 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 Object Oriented Programming
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 cercle