Rhy*_*yme 11 c++ variables function
我正在尝试制作一个菜单数组,其中每个元素都是一个结构,用于存储文本变量,需要按下以选择该项目的键和在该按键上调用的功能(例如“ Quit”,“ Q”,Quit) ())。我以为这样可以使事情更高效,但是我找不到一种使它可以与各种函数和参数类型一起工作的方法(例如,一项应该可以不带参数地调用void函数,而另一项可以与int类一起使用)两个参数,依此类推)。有什么好办法吗?还是我最好放弃这个主意?
编辑:谢谢大家的建议!提出的解决方案对我的新手来说有点太复杂了,但是尝试理解它们给了我一些想法!我最终使第三个变量保留一个枚举而不是直接函数调用,然后创建了一个基于该值调用其他函数的switch函数。
Pet*_*lev 10
实际上,有几种方法可以做到这一点。
一种方法是使用std::bind将所有功能绑定到上,void func(void)然后就可以平等地存储它们。
另一种方法是创建将调用您的函数的通用函数/ lambda。
要存储功能,可以使用std::function。
还可以考虑覆盖operator()您的课程。