调用函数取决于函数名称的数组数组的索引

时间:2016-12-15 21:12:23

标签: c++ arrays function function-pointers

在游戏中制作随机动作让它看起来真实...... 所以如果一个角色有很多Receive<T>,如capabilitiesmovework ...那么在编程时,会根据某些条件调用这些函数。我们想要的是一个更随机,更逼真的动作,其中没有任何条件,但根据随机条件,角色采取随机动作..

我想在数组中创建动作(函数)然后声明一个指向函数的指针,程序可以随机生成一个索引,在该索引上将为函数指针分配相应的函数名称:

study
  • 该程序运行正常,但我只是它很好或有另一种选择。欢迎提出每条评论

1 个答案:

答案 0 :(得分:3)

将函数指针转换为void*并返回时绝对没有意义。定义一个函数指针数组,并将其用作普通数组。声明的语法在this Q&A中描述(它适用于C,但语法在C ++中保持不变)。调用语法是索引器()之后的简单[]应用程序。

void (*pFunc[])() = {Foo, Bar, FooBar, Baz, FooBaz};
...
pFunc[choice]();

Demo.

注意:虽然函数指针在C ++中有效,但更灵活的方法是使用std::function对象。