Konfiguracja projektu
Część sekcji Programowanie obiektowe ścieżki C w Coddy. Lekcja 22 z 61.
Wyzwanie
ŁatwyZacznijmy tworzyć bibliotekę kont bankowych! W tym pierwszym kroku utworzysz publiczny interfejs: plik nagłówkowy definiujący dostępne operacje, bez ujawniania szczegółów implementacji.
Utworzysz dwa pliki, które będą podstawą projektu:
account.h: publiczny plik nagłówkowy, który będą dołączać użytkownicy twojej biblioteki. Zadeklaruj nieprzezroczysty typAccountza pomocą deklaracji niekompletnego typu: bez treści struktury, tylko deklaracja wyprzedzająca informująca kompilator o istnieniu tego typu. Następnie zadeklaruj prototypy funkcjicreate_account(przyjmuje liczbę całkowitą będącą identyfikatorem konta i zwraca wskaźnik do Account) orazdestroy_account(przyjmuje wskaźnik do Account i niczego nie zwraca). Nie zapomnij o strażnikach nagłówka używających symboluACCOUNT_H.main.c: prosty plik testowy, który pozwoli sprawdzić, czy nagłówek kompiluje się poprawnie. Dołącz swój nagłówek i wypisz komunikat potwierdzający, że interfejs jest gotowy. Ponieważ nie zaimplementowaliśmy jeszcze funkcji, po prostu wypisz komunikat potwierdzający — właściwa implementacja pojawi się w następnej lekcji.
Kluczowa idea jest taka, że nagłówek ujawnia, co może robić moduł Account (tworzyć i niszczyć konta), ale nie pokazuje, jak przechowuje on dane wewnętrznie. Każdy, kto dołączy account.h, będzie wiedział, że istnieje typ Account i jakie funkcje są dostępne, ale nie będzie mógł uzyskać dostępu do żadnych wewnętrznych pól, ponieważ nie zostały one zdefiniowane w nagłówku!
Twój główny plik powinien wypisać:
Account interface readyTo przygotuje grunt pod kompletny system kont bankowych, który zbudujesz w ciągu kilku kolejnych lekcji. W miarę postępów w projekcie utworzony teraz nagłówek zostanie rozszerzony o funkcje deposit, withdraw i get_balance.
Spróbuj swoich sił
#include <stdio.h>
#include "account.h"
int main() {
// TODO: Wyświetl komunikat potwierdzający, że interfejs jest gotowy
// Komunikat powinien brzmieć: "Account interface ready"
return 0;
}
Wszystkie lekcje w sekcji Programowanie obiektowe
1Podstawy programowania modularnego
Pliki nagłówkoweZabezpieczenia przed wielokrotnym dołączeniemPliki źródłoweFunkcje statycznePodsumowanie: kalkulator modularny4Enkapsulacja
Koncepcja niejawnych wskaźnikówDefiniowanie niejawnych strukturGettery i setteryWalidacja w setterachPowtórka: tajemnicze pudełko2Obiekty i metody
Struktury jako obiektyWskaźnik „self”Poprawność constWskaźnik czy wartośćMetody pomocniczePodsumowanie: menedżer punktów5Projekt: Proste konto bankowe
Konfiguracja projektuImplementacja konta8Polimorfizm
Wskaźniki do funkcji w strukturachSymulowanie metodKoncepcja interfejsuImplementowanie interfejsówIteracja polimorficznaPodsumowanie: Greeter11Wzorce projektowe w C
Wzorzec SingletonWzorzec fabrykiWzorzec iteratoraPodsumowanie: fabryka loggera3Cykl życia obiektu
Wzorzec konstruktoraWzorzec destruktoraInicjalizacja na stosieKopia głębokaPodsumowanie: klasa opakowująca ciąg znaków6Dziedziczenie przez kompozycję
Osadzanie strukturZasada pierwszego elementuDostęp do elementów klasy nadrzędnejKonwersja w górę hierarchiiPodsumowanie: hierarchia kształtów9Projekt: Rysownik kształtów
Przegląd projektuImplementacja kołaImplementacja prostokątaZastosowanie polimorfizmuKontener kształtówPoćwicz samodzielnie: Kompilator C online