Menu
Coddy logo textTech

Implémentation du compte

Fait partie de la section Object Oriented Programming 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 mécanismes internes cachés qui le font fonctionner.

En vous appuyant sur votre travail précédent, vous ajouterez le fichier source qui contient la définition secrète de la structure et les implémentations réelles des fonctions. C'est là que l'encapsulation prend tout son sens—le corps de la structure n'existe que dans le fichier .c, totalement invisible pour quiconque utilise votre bibliothèque.

Vous travaillerez avec trois fichiers :

  • account.h : Votre en-tête existant avec la déclaration opaque du type Account et les prototypes de fonctions pour 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 structure réelle struct Account avec deux membres cachés : int id (l'identifiant du compte) et double balance (commençant à 0.0 pour les nouveaux comptes). Implémentez votre constructeur pour allouer la mémoire, définir l'ID à partir du paramètre et initialiser le solde à zéro. Implémentez votre destructeur pour libérer correctement la mémoire.
  • main.c : Testez votre implémentation en créant un compte et en confirmant qu'il fonctionne. Puisque 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'ID du compte (un entier) à attribuer au nouveau compte.

Dans votre fichier principal, créez un compte avec l'ID fourni, affichez un message de confirmation montrant l'ID, puis détruisez le compte et confirmez le nettoyage.

Affichez la sortie dans ce format :

Account 1001 created
Account destroyed

1001 est remplacé par l'ID réel que vous avez reçu en entrée.

Rappel : votre main.c ne peut pas accéder directement à account->id ou account->balance—ces membres sont complètement cachés à l'intérieur de account.c. Pour l'instant, vous utiliserez simplement l'ID de l'entrée pour votre message de sortie. Dans les prochaines leçons, vous ajouterez des fonctions "getter" pour 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: détruire le compte en utilisant destroy_account() et afficher "Account destroyed"

    return 0;
}

Toutes les leçons de Object Oriented Programming