我正在为我正在进行的游戏设计一个脚本系统,我试图调用一个函数,我知道例如
#define something(argument) #argument
会将参数转换为字符串,有没有办法以类似的方式将字符串转换为函数?
答案 0 :(得分:2)
这样做的方法是建立一个字符串和函数指针表。
这通常也是在C ++中完成的,尽管在C ++中其他方法是可用的:您可以使用std::map<std::string, /*your function prototypte*/>
甚至std::map<std::string, std::function>
。
尽管如此,传统的多态解决方案可能就足够了。
(您还可以查看Boost Spirit,这是一个基于EBNF语法构建脚本的优秀工具.www.boost.org。相当复杂,但学习曲线非常值得。)