У меня есть два класса B и C - оба являются монстрами в моей (очень примитивной) игре. У меня есть функция MOVE, которая на данный момент просто меняет координаты X и Y монстра. Оба B и C получены из A; поэтому A имеет координаты X и Y, а B и C имеют другие атрибуты, такие как скорость и атака.Использование одной и той же функции для обработки разных классов
Есть ли способ, которым я могу настроить одну функцию, которая позволит мне пройти либо B, либо C (поскольку они оба должны иметь возможность двигаться ...), другими словами, не имеет значения, монстр который перемещается, это B или C, но он будет обрабатывать их таким же образом?
Я думал о сдаче класса A, но я не могу заставить это работать! . :-((может быть, это только я, будучи крайне неопытный!)
Большое спасибо - :-)
KJ
Какой язык вы с помощью? – kamituel
Извините, забыли упомянуть, что я использовал C++. Это уже добавлено. Извинения за путаницу. – KingJohnno
Это называется полиморфизм, и ваш первый инстинкт был, по крайней мере частично, правильным. Ваша функция должна быть реализована в терминах 'A', но для правильной работы вам необходимо передать ее в качестве ссылки (' A & ') или (менее предпочтительно) указателя (' A * '). – Chad