Bien sûr, vous pouvez, je me demande simplement s'il est rationnel de concevoir de cette manière.
Je fais un clone en petits groupes et je faisais du design de classe. Je voulais utiliser l'héritage, même si je n'y suis pas obligé, pour appliquer ce que j'ai appris en C ++. Je pensais à la conception des classes et j'ai trouvé quelque chose comme ça:
GameObject -> classe de base (se compose de membres de données comme les décalages x et y et d'un vecteur de SDL_Surface *
MovableObject: GameObject -> classe abstraite + classe dérivée de GameObject (une méthode void move () = 0;)
NonMovableObject: GameObject -> classe vide ... pas de méthodes ou membres de données autres que constructeur et destructeur (du moins pour l'instant?).
Plus tard, je prévoyais de dériver une classe de NonMovableObject, comme Tileset: NonMovableObject. Je me demandais simplement si des classes abstraites "vides" ou simplement des classes vides étaient souvent utilisées ... Je remarque que la façon dont je fais cela, je crée juste la classe NonMovableObject juste pour la catégorisation.
Je sais que je réfléchis trop juste pour faire un clone en petits groupes, mais je me concentre moins sur le jeu et plus sur l'utilisation de l'héritage et la conception d'une sorte de cadre de jeu.
MovableObject
ni l' autre neNonMovableObject
peuvent hériter l'un de l'autre, ils ont tous deux un emplacement; en tant que tels, ils devraient tous deux être consommables par du code qui, par exemple, veut diriger le but d'un monstre vers un objet sans se soucier de savoir si cet objet pourrait se déplacer ou non.