Implémentation du compte
Fait partie de la section Programmation Orientée Objet du Journey C de Coddy. Leçon 23 sur 61.
Défi
FacileIl est maintenant temps de donner vie à votre compte bancaire ! Vous avez déjà créé l’interface publique dans account.h : vous allez maintenant implémenter les éléments internes cachés qui le font fonctionner.
En vous appuyant sur votre travail précédent, vous allez ajouter le fichier source qui contient la définition secrète de la structure et les implémentations réelles des fonctions. C’est ici que l’encapsulation prend véritablement forme : le corps de la structure existe uniquement dans le fichier .c, complètement invisible pour toute personne utilisant votre bibliothèque.
Vous allez travailler avec trois fichiers :
account.h: votre en-tête existant avec la déclaration du type opaqueAccountet les prototypes des fonctionscreate_accountetdestroy_account. Conservez vos gardes d’inclusion avecACCOUNT_H.account.c: c’est ici que la magie opère. Définissez la véritablestruct Accountavec deux membres cachés :int id(l’identifiant du compte) etdouble balance(initialisé à 0.0 pour les nouveaux comptes). Implémentez votre constructeur pour allouer de la mémoire, définir l’ID à partir du paramètre et initialiser le solde à zéro. Implémentez votre destructeur afin de libérer correctement la mémoire.main.c: testez votre implémentation en créant un compte et en vérifiant qu’il fonctionne. Comme les membres de la structure sont cachés, vous ne pouvez pas regarder à l’intérieur, mais vous pouvez vérifier que le cycle de vie fonctionne correctement.
Vous recevrez une entrée : l’identifiant du compte (un entier) à attribuer au nouveau compte.
Dans votre fichier principal, créez un compte avec l’identifiant fourni, affichez un message de confirmation indiquant l’identifiant, puis détruisez le compte et confirmez le nettoyage.
Affichez la sortie au format suivant :
Account 1001 created
Account destroyedOù 1001 est remplacé par l’identifiant réel reçu en entrée.
N’oubliez pas : votre main.c ne peut pas accéder directement à account->id ou à account->balance. Ces membres sont complètement cachés dans account.c. Pour l’instant, vous utiliserez simplement l’identifiant fourni en entrée pour votre message de sortie. Dans les prochaines leçons, vous ajouterez des fonctions getter afin de récupérer correctement les données cachées.
Essayez vous-même
#include <stdio.h>
#include "account.h"
int main() {
int account_id;
// TODO: lire account_id depuis l'entrée
scanf("%d", &account_id);
// TODO: créer un compte en utilisant create_account() et afficher "Account <id> created"
// TODO: destroy the account using destroy_account() and print "Account destroyed"
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