Menu
Coddy logo textTech

Implementierung des Kontos

Teil des Abschnitts Objektorientierte Programmierung der C-Journey von Coddy. Lektion 23 von 61.

challenge icon

Aufgabe

Einfach

Jetzt ist es an der Zeit, dein Bankkonto zum Leben zu erwecken! Du hast die öffentliche Schnittstelle bereits in account.h erstellt: Jetzt implementierst du die verborgenen Interna, die sie funktionsfähig machen.

Aufbauend auf deiner bisherigen Arbeit fügst du die Quelldatei hinzu, die die geheime Strukturdefinition und die tatsächlichen Funktionsimplementierungen enthält. Hier findet echte Kapselung statt: Der Körper der Struktur existiert nur in der .c-Datei und ist für alle, die deine Bibliothek verwenden, vollständig unsichtbar.

Du arbeitest mit drei Dateien:

  • account.h: Dein vorhandener Header mit der Deklaration des opaken Typs Account und den Funktionsprototypen für create_account und destroy_account. Behalte deine Include-Guards mit ACCOUNT_H bei.
  • account.c: Hier geschieht die Magie. Definiere die tatsächliche struct Account mit zwei verborgenen Mitgliedern: int id (die Konto-ID) und double balance (für neue Konten auf 0.0 gesetzt). Implementiere deinen Konstruktor so, dass er Speicher reserviert, die ID aus dem Parameter setzt und den Kontostand auf null initialisiert. Implementiere deinen Destruktor, um den Speicher ordnungsgemäß freizugeben.
  • main.c: Teste deine Implementierung, indem du ein Konto erstellst und bestätigst, dass es funktioniert. Da die Strukturmitglieder verborgen sind, kannst du nicht hineinschauen, aber du kannst überprüfen, dass der Lebenszyklus korrekt funktioniert.

Du erhältst eine Eingabe: die Konto-ID (eine Ganzzahl), die dem neuen Konto zugewiesen werden soll.

Erstelle in deiner Hauptdatei ein Konto mit der angegebenen ID, gib eine Bestätigungsnachricht mit der ID aus, zerstöre anschließend das Konto und bestätige die Bereinigung.

Gib die Ausgabe in diesem Format aus:

Account 1001 created
Account destroyed

Wobei 1001 durch die tatsächliche ID ersetzt wird, die du als Eingabe erhalten hast.

Denke daran: Deine main.c kann nicht direkt auf account->id oder account->balance zugreifen. Diese Mitglieder sind vollständig in account.c verborgen. Vorerst verwendest du einfach die ID aus der Eingabe für deine Ausgabenachricht. In den kommenden Lektionen wirst du Getter-Funktionen hinzufügen, um die verborgenen Daten ordnungsgemäß abzurufen.

Probier es selbst

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

int main() {
    int account_id;
    // TODO: account_id von der Eingabe lesen
    scanf("%d", &account_id);

    // TODO: erstelle ein Konto mit create_account() und gib "Account <id> created" aus

    // TODO: destroy the account using destroy_account() and print "Account destroyed"

    return 0;
}

Alle Lektionen in Objektorientierte Programmierung

Übe selbstständig: Online-C-Compiler