c++ - 在C++中动态创建指针函数

标签 c++ math pointers function

我今天正在做我的高等微积分作业,我们正在按照牛顿法进行一些迭代方法来寻找诸如 x^2=2 之类的问题的解决方案。这让我想到我可以编写一个函数,该函数将采用两个函数指针,一个指向函数本身,一个指向导数并使过程自动化。这不会太具有挑战性,然后我开始考虑是否可以让用户输入一个函数并解析该输入(是的,我可以做到)。但是我可以在 C++ 中动态创建一个指向单变量函数的指针吗?例如,如果 x^2+x,我可以在运行时创建一个函数 double function(double x){ return x*x+x;} 吗?这是否可行,或者是否符合自修改代码的要求?

编辑:

所以我想,如果您将信息存储在一个数组中,并且该数组具有一个函数,可以使用给定的输入来评估存储在该数组中的信息,那将如何做到这一点。然后你可以创建一个类并在该类中初始化数组,然后使用那里的函数。有没有更好的办法?

最佳答案

正如其他人所说,您无法在运行时以任何可移植的方式创建新的 C++ 函数。但是,您可以创建一个表达式求值器来求值,例如:

 (1 + 2) * 3

在运行时包含在一个字符串中。将这样的求值器扩展为具有变量和函数并不难。

关于c++ - 在C++中动态创建指针函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2575866/

相关文章:

c - 使用 void* 指针将未知/混合类型传递给 printf() (一种在运行时推断类型)

python - 模数如何处理也小于除数的负股息?

使用 C 计算 sin 的麦克劳林级数

c - 使用指针通过函数传递数组

c# - 之前声明所有局部变量是否有性能提升或其他原因?

algorithm - 使用 Kruskal 算法找到图中的最小割点?

c++ - 有一个模板参数,可以是指针类型也可以是非指针类型

c++ - copy-and-swap 习语在 C++11 中仍然有用吗

c++ - 数据传输协议(protocol)设计

c++ - 是否可以使用 openMP 以 O(1) 复杂度初始化 vector ? (C++)