У меня есть 3 класса MovableObject
, FixedObject
и CollisionObject
. A CollisionObject
должен иметь возможность быть либо MovableObject
, либо FixedObject
. Но было бы бессмысленно использовать множественное наследование, поскольку оно не может быть одновременно одновременно. В принципе, если я создаю Projectile
, иерархия будет:Измените то, что наследует производный класс от
Sprite <- MovableObject <- CollisionObject <- Projectile
И если я создаю Obstacle
было бы:
Sprite <- FixedObject <- CollisionObject <- Obstacle
(Мой базовый класс Sprite
)
Так что CollisionObject
следует наследовать от того, на что наследуются дочерние объекты (Либо Movable-
, либо FixedObject
). Но как это реализовать на C++?
«Но я не могу наследовать от обоих классов конечно» Почему нет? –
«Но я не могу унаследовать оба эти класса». -> на самом деле, __you can__. Это называется [множественное наследование] (http://www.learncpp.com/cpp-tutorial/117-multiple-inheritance/). – ForceBru
@latedeveloper хорошо, если я делаю CollisionObject: public FixedObject, public MovableObject не создаст экземпляр обоих? – Bonbin