Certo che puoi, mi sto solo chiedendo se è razionale progettare in questo modo.
Sto facendo un clone di breakout e stavo facendo un progetto di classe. Volevo usare l'ereditarietà, anche se non dovevo, per applicare ciò che ho imparato in C ++. Stavo pensando al design della classe e ho trovato qualcosa di simile:
GameObject - > classe base (costituita da membri di dati come x e y offset e un vettore di SDL_Surface *
MovableObject: GameObject - > classe astratta + classe derivata di GameObject (un metodo void move () = 0;)
NonMovableObject: GameObject - > classe vuota ... nessun metodo o membro dati diverso da costruttore e distruttore (almeno per ora?).
In seguito stavo progettando di derivare una classe da NonMovableObject, come Tileset: NonMovableObject. Mi stavo chiedendo se sono spesso usate classi astratte "vuote" o solo classi vuote ... Ho notato che, nel modo in cui sto facendo questo, sto solo creando la classe NonMovableObject solo per motivi di categorizzazione.
So che sto pensando troppo alle cose solo per creare un clone di breakout, ma il mio focus è meno sul gioco e più sull'utilizzo dell'ereditarietà e sulla progettazione di una sorta di framework di gioco.