【问题标题】:Changing function pointers after compilation编译后更改函数指针
【发布时间】:2013-06-07 08:23:14
【问题描述】:

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

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

然后将行为保存在某处。有什么想法可以做到这一点吗?

【问题讨论】:

    标签: c++ function function-pointers ogre3d


    【解决方案1】:

    阅读“策略”设计模式。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-09
      • 1970-01-01
      • 1970-01-01
      • 2016-05-28
      • 2014-08-09
      • 2012-01-04
      • 2012-07-16
      相关资源
      最近更新 更多