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