Предпочитаю композицию наследованию
Вам не нужно наследование, чтобы объединять вещи, которые не связаны между собой. Составьте базовые объекты (сущности?) Для игровой логики, физики, звука, ввода, графики (которые могут использовать наследование) и объедините те объекты GameObject, у которых есть только массив упомянутых объектов.
Некоторые изящные перекрестные ссылки полезны, поскольку все они будут совместно использовать Frame или Transform, но это можно сделать во время создания, перебирая все другие объекты и используя dynamic_cast ... (это полезно, если вам не нужно зависеть от порядок инициализации).
Но на самом деле нет необходимости строить это с наследованием. Это не подходит для вашего использования правильно. (Хотя виртуальное наследование полезно, но не стоит использовать наследование, чтобы заставить разные вещи становиться одинаковыми, то есть все быть чем-то , а не состоять из разных частей (рендеринг, повреждение, звук и т.д ...).
Прочитайте , это и , это для получения дополнительной информации, или просто нажмите на название, чтобы найти его в Google. :)