Projekt-Setup
Teil des Abschnitts Object Oriented Programming der C-Journey von Coddy — Lektion 22 von 61.
Aufgabe
EinfachLassen Sie uns mit dem Aufbau Ihrer Bankkonto-Bibliothek beginnen! In diesem ersten Schritt erstellen Sie die öffentliche Schnittstelle – die Header-Datei, die definiert, welche Operationen existieren, ohne Implementierungsdetails preiszugeben.
Sie werden zwei Dateien erstellen, um das Projektfundament zu legen:
account.h: Ihre öffentliche Header-Datei. Dies ist die Datei, die Benutzer Ihrer Bibliothek einbinden werden. Deklarieren Sie einen opakenAccount-Typ unter Verwendung einer unvollständigen Typdeklaration – kein Struct-Body, nur eine Vorwärtsdeklaration, die dem Compiler mitteilt, dass der Typ existiert. Deklarieren Sie dann die Funktionsprototypen fürcreate_account(nimmt eine Ganzzahl für die Konto-ID entgegen und gibt einen Account-Pointer zurück) unddestroy_account(nimmt einen Account-Pointer entgegen und gibt nichts zurück). Vergessen Sie nicht die Include-Guards mit dem SymbolACCOUNT_H.main.c: Eine einfache Testdatei, um zu überprüfen, ob Ihr Header korrekt kompiliert. Binden Sie Ihren Header ein und geben Sie eine Nachricht aus, die bestätigt, dass die Schnittstelle bereit ist. Da wir die Funktionen noch nicht implementiert haben, geben Sie einfach eine Bestätigungsnachricht aus – die eigentliche Implementierung folgt in der nächsten Lektion.
Die entscheidende Erkenntnis hierbei ist, dass Ihr Header offenbart, was das Account-Modul tun kann (Konten erstellen und löschen), ohne zu zeigen, wie es Daten intern speichert. Jeder, der account.h einbindet, wird wissen, dass ein Account-Typ existiert und welche Funktionen verfügbar sind, aber er wird nicht auf interne Felder zugreifen können – weil Sie im Header keine definiert haben!
Ihre Hauptdatei sollte Folgendes ausgeben:
Account interface readyDies bereitet die Bühne für das vollständige Bankkonto-System vor, das Sie im Laufe der nächsten Lektionen aufbauen werden. Der Header, den Sie jetzt erstellen, 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: Eine Nachricht ausgeben, die bestätigt, dass das Interface bereit ist
// Die Nachricht sollte lauten: "Account interface ready"
return 0;
}
Alle Lektionen in Object Oriented Programming
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-Implementierung