Я работал над Roguelike, и столкнулся с проблемой с ним. Моя проблема в том, что я хотел бы использовать «полиморфную перегрузку» или сортировку, но я предполагаю, что C ++ не поддерживает.
Моя диаграмма классов выглядит так:
xMapObject <- xEntity <- xVehicle </p>
Проблема в том, что это возможно:
class xMapObject
{
public:
virtual void Bump(xMapObject *MapObject);
virtual void Bump(xEntity *Entity);
virtual void Bump(xVehicle *Vehicle);
virtual void BumpedBy(xMapObject *MapObject);
virtual void BumpedBy(xEntity *Entity);
virtual void BumpedBy(xVehicle *Vehicle);
};
Это было бы очень хорошо, так как это сильно упростило бы код, который определяет, кто на что наталкивается, но поскольку это не работает, есть ли другой объектно-ориентированный подход, похожий на этот? Или это лучший вариант приведения объектов к определению, кто они?
Спасибо за любую помощь!