【发布时间】:2014-04-04 18:27:23
【问题描述】:
当你有一个函数(指针)作为 C++ 中另一个函数的参数时,这个函数(即参数中的)是否必须是一个 void 函数?
例如。你能有像
这样的功能吗void run(int (*method)(int, double, vector), int dimension)
这里的函数方法返回一个 int 而不是 void。我也对向量有困难。应该是&vector吗?
当我在我的 main 中调用它时,我有它:
run(jacobi_method(Vnew, V, vec), dimension);
但它不想工作。 谢谢
【问题讨论】:
-
“不起作用”不是人们可以帮助您解决的错误描述。准确。
-
你想把函数的结果作为参数,还是函数本身?
-
您试图用于传递函数指针的语法是错误的!将
run(jacobi_method(Vnew, V, vec), dimension);更改为run(jacobi_method, dimension);。 -
抱歉,我对错误不精确,我实际上看不到它所说的错误是什么,它就是无法编译。谢谢cmets-如果我将其更改为仅运行(jacobi_method,尺寸),那么我可以在什么时候输入函数jacobi_method所需的参数? Luchian 我希望函数 jacobi_method 在调用该方法时在 void 中执行。
-
您在此处进行的调用实际上是使用您传递的参数调用 jacobi_method,然后尝试将整数结果传递给“运行”。所以,如果 run 就像 void run(int r, int dimension),这会起作用,但我认为这不是你想要的
标签: c++ function parameters void-pointers