Oczywiście, że tak, po prostu zastanawiam się, czy racjonalne jest projektowanie w taki sposób.
Robię klona Breakouta i pracuję nad klasą. Chciałem zastosować dziedziczenie, mimo że nie muszę, zastosować to, czego się nauczyłem w C ++. Myślałem o projektowaniu klas i wymyśliłem coś takiego:
GameObject -> klasa podstawowa (składa się z elementów danych, takich jak przesunięcia xiy oraz wektor
SDL_Surface * MovableObject: GameObject -> klasa abstrakcyjna + klasa pochodna GameObject (jedna metoda void move () = 0;)
NonMovableObject: GameObject -> pusta klasa ... żadnych metod ani elementów danych innych niż konstruktor i destruktor (przynajmniej na razie?).
Później planowałem wyprowadzić klasę z NonMovableObject, na przykład Tileset: NonMovableObject. Zastanawiałem się tylko, czy często używane są „puste” klasy abstrakcyjne, czy tylko puste klasy ... Zauważyłem, że w ten sposób po prostu tworzę klasę NonMovableObject tylko ze względu na kategoryzację.
Wiem, że zastanawiam się nad zrobieniem klonu, ale mniej skupiam się na grze, a bardziej na używaniu dziedziczenia i projektowaniu jakiegoś frameworka.
MovableObject
nieNonMovableObject
mogą się po sobie dziedziczyć, obie mają swoją lokalizację; jako takie, oba powinny być zużywalne przez kod, który np. chce skierować cel potwora w stronę obiektu bez względu na to, czy obiekt ten może się poruszać, czy nie.