В настоящее время у меня есть два класса: Drawable и Transformable, и такие вещи, как Actors, наследуют оба из них, проблема заключается в том, чтобы рисовать объекты на экране. Я повторяю вектор Drawable, которые не имеют функции getPosition(), включенной в трансформер. Добавление виртуального getPosition() в Drawable разрешает это, но затем создает проблему неоднозначных вызовов функции в другом месте. Могу ли я нарисовать наследуемый Transableable и Actor наследовать Drawable и получить тот же результат, как если бы он наследовал оба класса?Наследование цепей
EDIT: Drawables - это не все актеры, некоторые - спрайты (игровые объекты), примитивные фигуры и т. Д. На самом деле единственной причиной, по которой мне нужен getPosition() в рисовальном цикле, является то, что для подделки глубины I цикл через вектор, чтобы перейти от координаты 0 Y к нижней части экрана, объекты, расположенные выше на экране, сначала нарисованы, а затем позади объектов ближе к «фронту». Я не писал классы Drawable/Transformable, и я предпочел бы не полностью их изменять, чтобы удовлетворить один вызов функции в одном экземпляре. Единственный момент, когда это проблема, - это когда я ссылаюсь на вектор Drawables. Мне не совсем понятно, почему это было спроектировано так, как это было, потому что все, что использует класс drawable, также наследует трансформируемый класс, поэтому они должны быть едины, но они не являются.
Мой вопрос заключается в том, что:
class foo {}
class bar{}
class foobar : public foo, public bar {}
такая же, как это
class foo {}
class bar : public foo {}
class foobar : public bar {}
Может ли объект наследовать открытые и защищенные члены класса их родителей наследуется?
Вы попытались отобразить свойства по типам. Почему бы не стать актером? Как вы обнаружили, зная, что что-то «доступно», это не то же самое, что знать «как его нарисовать». Собственно, в этом случае я бы сказал, что что-то должно иметь положение, даже если оно не трансформируется. –
почему бы не показать код? –
Por queno los dos ?! – azz