Изменение указателей на функции после компиляции

Я использую Ogre3, чтобы попытаться создать Spawner, который автоматически создает копии врага и отправляет их в мир. В дополнение к этому, я хочу сохранить функцию поведения, чтобы при появлении сущности она включалась в это поведение, как только она выпадает в мир. Мне было интересно, можно ли это сделать. Я занимался мыслью о переназначении указателей на функции с такой подписью:

void setBehavior (void (* поведение) (враг))

а затем сохранить поведение где-нибудь. Есть идеи, как мне это сделать?

0

Решение

Прочитайте шаблон проектирования «Стратегия».

Указателя на функцию реализации может быть достаточно, более обычным является использование иерархии классов, реализующей различные стратегии, и экземпляр этого передается — сохраняется в unique_ptr<IStrategy> или что-то подобное. std::function Стоит задуматься тоже.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]