Projekt-Setup
Teil des Abschnitts Objektorientierte Programmierung der C-Journey von Coddy. Lektion 22 von 61.
Aufgabe
EinfachBeginnen wir mit dem Aufbau deiner Bank-Account-Bibliothek! In diesem ersten Schritt erstellst du die öffentliche Schnittstelle: die Header-Datei, die festlegt, welche Operationen existieren, ohne Details zur Implementierung offenzulegen.
Du erstellst zwei Dateien, um die Grundlage des Projekts einzurichten:
account.h: Deine öffentliche Header-Datei. Diese Datei wird von den Benutzern deiner Bibliothek eingebunden. Deklariere einen undurchsichtigenAccount-Typ mithilfe einer unvollständigen Typdeklaration: keinen Struct-Körper, sondern nur eine Vorwärtsdeklaration, die dem Compiler mitteilt, dass der Typ existiert. Deklariere anschließend die Funktionsprototypen fürcreate_account(nimmt eine Ganzzahl für die Konto-ID entgegen und gibt einen Account-Zeiger zurück) unddestroy_account(nimmt einen Account-Zeiger entgegen und gibt nichts zurück). Vergiss nicht die Include-Guards mit dem SymbolACCOUNT_H.main.c: Eine einfache Testdatei, um zu überprüfen, ob dein Header korrekt kompiliert wird. Binde deinen Header ein und gib eine Meldung aus, die bestätigt, dass die Schnittstelle bereit ist. Da wir die Funktionen noch nicht implementiert haben, gib einfach eine Bestätigungsmeldung aus: Die eigentliche Implementierung folgt in der nächsten Lektion.
Die wichtige Erkenntnis hier ist, dass dein Header offenlegt, was das Account-Modul tun kann (Konten erstellen und zerstören), ohne zu zeigen, wie es Daten intern speichert. Jeder, der account.h einbindet, weiß, dass ein Account-Typ existiert und welche Funktionen verfügbar sind, kann jedoch auf keine internen Felder zugreifen, weil du im Header keine definiert hast!
Deine Hauptdatei sollte Folgendes ausgeben:
Account interface readyDamit legst du den Grundstein für das vollständige Bank-Account-System, das du in den nächsten Lektionen erstellen wirst. Der Header, den du jetzt erstellst, wird im weiteren Verlauf des Projekts um deposit, withdraw und get_balance erweitert.
Probier es selbst
#include <stdio.h>
#include "account.h"
int main() {
// TODO: Gib eine Nachricht aus, die bestätigt, dass die Schnittstelle bereit ist
// The message should be: "Account interface ready"
return 0;
}
Alle Lektionen in Objektorientierte Programmierung
1Grundlagen der modularen Programmierung
Header-DateienInclude GuardsQuelldateienStatische FunktionenWiederholung: Modularer Taschenrechner4Kapselung
Konzept der Opaque PointersOpaque Structs definierenGetter und SetterValidierung in SetternRückblick: Die geheime Box2Objekte und Methoden
Structs als ObjekteDer 'Self'-PointerConst-CorrectnessPointer vs. WertHilfsmethodenZusammenfassung: Point Manager5Projekt: Einfaches Bankkonto
Projekt-SetupImplementierung des Kontos3Objekt-Lebenszyklus
Konstruktor-MusterDestruktor-MusterStack-InitialisierungTiefe KopieRückblick: String-Wrapper6Vererbung durch Komposition
Struct-EinbettungDie First-Member-RegelZugriff auf Parent-MemberUpcastingRückblick: Formenhierarchie9Projekt: Formen-Zeichner
ProjektübersichtKreis-ImplementierungRechteck-ImplementierungPolymorphe VerwendungShape-ContainerÜbe selbstständig: Online-C-Compiler