Конечно, вы можете, мне просто интересно, рационально ли так проектировать.
Я делаю клон прорыва и занимаюсь дизайном классов. Я хотел использовать наследование, хотя мне и не нужно, чтобы применить то, что я изучил в C ++. Я думал о дизайне класса и придумал что-то вроде этого:
GameObject -> базовый класс (состоит из элементов данных, таких как смещения x и y, и вектора SDL_Surface *
MovableObject: GameObject -> абстрактный класс + производный класс GameObject (один метод void move () = 0;)
NonMovableObject: GameObject -> пустой класс ... нет методов или членов данных, кроме конструктора и деструктора (по крайней мере, сейчас?).
Позже я планировал извлечь класс из NonMovableObject, например, Tileset: NonMovableObject. Мне просто интересно, часто ли используются «пустые» абстрактные классы или просто пустые классы ... Я замечаю, что, как я это делаю, я просто создаю класс NonMovableObject просто для категоризации.
Я знаю, что слишком много думаю о том, чтобы сделать прорывного клона, но я больше концентрируюсь не на игре, а на использовании наследования и разработке какой-то игровой среды.
MovableObject
неNonMovableObject
может наследовать друг от друга, у них обоих есть местоположение; как таковые, они оба должны потребляться кодом, который, например, хочет направить цель монстра на объект, не обращая внимания на то, может ли этот объект двигаться или нет.