Menu
Coddy logo textTech

Implementazione del conto

Fa parte della sezione Programmazione orientata agli oggetti del percorso C di Coddy. Lezione 23 di 61.

challenge icon

Sfida

Facile

Ora è il momento di dare vita al tuo conto bancario! Hai già creato l’interfaccia pubblica in account.h: ora implementerai i dettagli interni nascosti che lo fanno funzionare.

Partendo dal lavoro precedente, aggiungerai il file sorgente che contiene la definizione segreta della struct e le implementazioni effettive delle funzioni. È qui che avviene davvero l’incapsulamento: il corpo della struct esiste solo nel file .c, completamente invisibile a chiunque utilizzi la tua libreria.

Lavorerai con tre file:

  • account.h: il tuo header esistente con la dichiarazione del tipo opaco Account e i prototipi delle funzioni create_account e destroy_account. Mantieni le guardie di inclusione con ACCOUNT_H.
  • account.c: è qui che avviene la magia. Definisci la struct Account effettiva con due membri nascosti: int id (l’identificatore del conto) e double balance (inizializzato a 0.0 per i nuovi conti). Implementa il costruttore affinché allochi memoria, imposti l’ID usando il parametro e inizializzi il saldo a zero. Implementa il distruttore affinché liberi correttamente la memoria.
  • main.c: verifica la tua implementazione creando un conto e controllando che funzioni. Poiché i membri della struct sono nascosti, non puoi sbirciare al loro interno, ma puoi verificare che il ciclo di vita funzioni correttamente.

Riceverai un input: l’ID del conto (un intero) da assegnare al nuovo conto.

Nel tuo file principale, crea un conto con l’ID fornito, stampa un messaggio di conferma che mostri l’ID, quindi distruggi il conto e conferma la pulizia.

Stampa l’output in questo formato:

Account 1001 created
Account destroyed

Dove 1001 viene sostituito con l’ID effettivo ricevuto come input.

Ricorda: il tuo main.c non può accedere direttamente a account->id o account->balance. Questi membri sono completamente nascosti all’interno di account.c. Per ora, userai semplicemente l’ID dell’input nel messaggio di output. Nelle prossime lezioni aggiungerai funzioni getter per recuperare correttamente i dati nascosti.

Provalo tu

#include <stdio.h>
#include "account.h"

int main() {
    int account_id;
    // TODO: leggi account_id dall'input
    scanf("%d", &account_id);

    // TODO: crea un account usando create_account() e stampa "Account <id> created"

    // TODO: distruggi l'account usando destroy_account() e stampa "Account destroyed"

    return 0;
}

Tutte le lezioni di Programmazione orientata agli oggetti

Esercitati da solo: Compilatore C online