获取函数指针或使用存储在字符串中的函数名对函数求值

C++ Get a function pointer or eval a function using the functions name stored in a string

本文关键字:函数 字符串 指针 存储 获取      更新时间:2023-10-16

我正在研究一个自然语言解析器。来自自然语言的单词被解析为它们所代表的概念。目的是让机器人能够解释用自然语言给出的命令。执行这些命令的一种方法是创建大量的if语句,每个概念至少有一个if语句。我想知道是否有一种方法来检索一个函数指针,其名称存储为字符串的函数。然后,每个概念都可以包含一个字符串,该字符串表示在解析中出现该概念时需要执行的函数。这样,概念就已经知道该怎么做了。

这并不复杂。我将尝试(当然,理论上)实现这些"可能的"解决方案之一:

  1. 这是非常c++:读取实例化类的名称?并为每种"自然"语言创建一个类,确保这些类派生自一个公共接口,并且每个类都将具有处理特定单词的重写方法。

  2. 这是更多的C:如果你不怕使用共享库,创建一个共享库,所有的函数为你想要的命令,确保函数名称匹配"words",然后加载你想要使用的特定函数(word)。这比上面的方法更简单,因为你不需要知道所有的单词,而且维护也更少。

欢呼