Claro que você pode, eu só estou me perguntando se é racional projetar dessa maneira.
Estou criando um clone de fuga e desenvolvendo um design de classe. Eu queria usar a herança, mesmo que não precisasse, para aplicar o que aprendi em C ++. Eu estava pensando em design de classe e criei algo assim:
GameObject -> classe base (consiste em membros de dados como xey deslocamentos e um vetor de SDL_Surface *
MovableObject: GameObject -> classe abstrata + classe derivada de GameObject (um método void move () = 0;)
NonMovableObject: GameObject -> classe vazia ... nenhum método ou membro de dados além de construtor e destruidor (pelo menos por enquanto?).
Mais tarde, planejei derivar uma classe de NonMovableObject, como Tileset: NonMovableObject. Eu estava pensando se classes abstratas "vazias" ou apenas classes vazias são frequentemente usadas ... Percebo que, do jeito que estou fazendo isso, estou apenas criando a classe NonMovableObject apenas por uma questão de categorização.
Eu sei que estou pensando demais nas coisas apenas para criar um clone de fuga, mas meu foco é menos no jogo e mais no uso de herança e no design de algum tipo de estrutura de jogo.
MovableObject
nemNonMovableObject
pode herdar um do outro, ambos têm uma localização; como tal, ambos devem ser consumíveis por código que, por exemplo, deseja direcionar o objetivo de um monstro para um objeto, sem levar em consideração se esse objeto pode se mover ou não.