Menu
Coddy logo textTech

Implémentation du compte

Fait partie de la section Programmation Orientée Objet du Journey C de Coddy. Leçon 23 sur 61.

challenge icon

Défi

Facile

Il 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 opaque Account et les prototypes des fonctions create_account et destroy_account. Conservez vos gardes d’inclusion avec ACCOUNT_H.
  • account.c : c’est ici que la magie opère. Définissez la véritable struct Account avec deux membres cachés : int id (l’identifiant du compte) et double 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 destroyed

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

Entraînez-vous par vous-même : Compilateur C en ligne