l******e 发帖数: 470 | 1 有一个函数A,它的一个参数是一个函数f
int A(int f(int))
{
。。。。
}
现在我想这样调用A
for(x=1; x<100;x++)
{
s=A(f2(x, int))
}
f2(int, int)有2个参数,其中一个参数循环,所以f2就可以看成只有一个参数。
当然上面的实现肯定不对,以上怎么实现才能不ugly。。(最好不要改动A)
多谢。 |
T*****9 发帖数: 2484 | 2 var_args?
【在 l******e 的大作中提到】 : 有一个函数A,它的一个参数是一个函数f : int A(int f(int)) : { : 。。。。 : } : 现在我想这样调用A : for(x=1; x<100;x++) : { : s=A(f2(x, int)) : }
|
z********i 发帖数: 543 | |
k****n 发帖数: 1334 | 4 什么叫一个参数循环
【在 l******e 的大作中提到】 : 有一个函数A,它的一个参数是一个函数f : int A(int f(int)) : { : 。。。。 : } : 现在我想这样调用A : for(x=1; x<100;x++) : { : s=A(f2(x, int)) : }
|
s*x 发帖数: 3328 | 5 你把x定义成外部全局变量,然后修改f2或者做一个壳把f2装起来,然后用f2或者壳作
为参数调用A。你这么直接用会有问题,参数数目不对,最后编译后的结果行为是不确
定的。
【在 l******e 的大作中提到】 : 有一个函数A,它的一个参数是一个函数f : int A(int f(int)) : { : 。。。。 : } : 现在我想这样调用A : for(x=1; x<100;x++) : { : s=A(f2(x, int)) : }
|
r***q 发帖数: 48 | 6 What you want is Currying and higher order functions, check out functional
programming libraries in C++ such as FC++ or similar ones in Boost. But it
might require changing class A |