Podsumowanie: menedżer punktów
Część sekcji Programowanie obiektowe ścieżki C w Coddy. Lekcja 11 z 61.
Wyzwanie
ŁatwyZbudujmy kompletny moduł Point, który zarządza współrzędnymi 2D. To podsumowujące wyzwanie łączy wszystko, czego nauczyłeś się o traktowaniu struktur jak obiektów: używaniu wskaźników do modyfikowania stanu oraz wskaźników const do operacji tylko do odczytu.
Utworzysz trzy pliki:
point.h: Zadeklaruj strukturęPointz dwoma składowymi typu całkowitego:xiy. Zadeklaruj też dwie funkcje pełniące rolę metod:point_move: przyjmuje wskaźnik do Point oraz dwie liczby całkowite (dxidy) i przesuwa punkt, dodając te wartości doxiypoint_print: przyjmuje wskaźnikconstdo Point i wyświetla jego współrzędne (ta funkcja nie powinna modyfikować punktu)
POINT_H.point.c: Zaimplementuj obie funkcje. Zastanów się, która funkcja potrzebuje zwykłego wskaźnika (aby modyfikować punkt), a która używa wskaźnikaconst(aby bezpiecznie odczytywać dane bez ich modyfikowania).main.c: Utwórz Point, przesuwaj go i wyświetlaj jego położenie na różnych etapach.
Otrzymasz cztery liczby całkowite: początkową wartość x, początkową wartość y, wartość dx (odległość przesunięcia w poziomie) oraz wartość dy (odległość przesunięcia w pionie).
W pliku głównym zainicjalizuj Point początkowymi współrzędnymi, wyświetl jego początkowe położenie, przesuń go o podane wartości, a następnie wyświetl jego nowe położenie.
Funkcja point_print powinna wyświetlać wynik w następującym formacie:
Point: ({x}, {y})Na przykład dla danych wejściowych 3, 5, 2 i -1 wynikiem będzie:
Point: (3, 5)
Point: (5, 4)Spróbuj swoich sił
#include <stdio.h>
#include "point.h"
int main() {
// Wczytaj wartości wejściowe
int x, y, dx, dy;
scanf("%d", &x);
scanf("%d", &y);
scanf("%d", &dx);
scanf("%d", &dy);
// TODO: Utwórz Point o początkowych współrzędnych (x, y)
// TODO: Wypisz początkową pozycję za pomocą point_print
// TODO: Przesuń punkt o (dx, dy) za pomocą point_move
// TODO: Wypisz nową pozycję za pomocą point_print
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