编译后更改函数指针

Changing function pointers after compilation

本文关键字:函数 指针 编译      更新时间:2023-10-16

我正在使用Ogre3来尝试构建一个生成器,该生成器可以自动创建敌人的副本并将其放入世界中。 除此之外,我还想保存一个行为函数,以便在实体生成时,一旦它掉入世界,它就会立即参与该行为。 我想知道这是否有可能做到。 我正在考虑用这样的签名重新分配函数指针的想法:

void setBehavior(void (*behavior((Enemy((

然后将行为保存在某处。 任何想法我如何实现这一目标?

阅读"策略"设计模式。

实现

方面的函数指针可能就足够了,更常见的是让类层次结构实现不同的策略并传递其实例 - 存储在unique_ptr<IStrategy>或类似的东西中。 std::function也值得考虑。