【发布时间】:2019-08-09 19:16:53
【问题描述】:
我正在尝试创建一个菜单数组,其中每个元素都是一个存储文本变量的结构,需要按下以选择该项目的键和在该按键上调用的函数(类似于“退出”,'Q ', 放弃())。我认为这会使事情变得更有效率,但我找不到一种方法让它适用于不同的函数和参数类型(例如,一个项目应该能够调用一个没有参数的 void 函数,另一个是一个类 int 函数两个参数等等)。有什么好的方法可以做到这一点,还是我最好放弃这个想法?
编辑:谢谢大家的建议!建议的解决方案对我的新手来说有点太复杂了,但尝试理解它们给了我一些想法!我最终让第三个变量保存了一个枚举而不是直接函数调用,然后创建了一个 switch 函数,该函数根据该值调用其他函数。
【问题讨论】:
-
您可以使用 lambda 表达式来调用您的实际函数
-
类实例和两个参数从何而来?
-
查找Command pattern。请注意,我并不是说不为此使用函数。但这种模式是您所需要的通用形式。
-
注意,单一方法的接口大致相当于
std::function类型。