1
我有一个基函数如何从参数化的基本函数生成多个函数指针?
int base(const int i, const double &x)
在这个函数中,我认为i
是一个“参数”(其可以采取预定义的值从0到N-1),而x
我认为的实际的“参数”(可以取任意值)。我需要的是创建一个函数指针数组int (*pointers[N])(const double &x)
。阵列的每个成员对应于参数i
的不同值,因此每个呼叫pointers[n](x)
应等同于呼叫base(n, x)
。
有没有办法实现这个功能?
我一直在试图教育自己关于函子(这是一种方式去?),最近也研究了std::bind
,但我的理解是,它只适用于C + + 11(我目前不能使用)。
任何建议或代码片段将是非常有用的。谢谢!
感谢您的回答!....问题如下:不同参数值的数量很大,更重要的是,在编译时不知道。因此,我不能随便写下“p1”,“p2”,“p3”,“f1”等....我需要能够通过循环来完成命令.... – Chrys 2013-02-21 00:10:20
@Chrys:不幸的是,C++中的函数不是真正的一流对象,并且不能动态地创建函数。如果你可以使用类似函数的对象,这将是微不足道的,但不是原始函数指针。他们只是没有足够的状态。 – 2013-02-21 00:18:43
我需要使用原始指针才能与最初在Fortran中编写的遗留代码进行交互,我一直通过C调用它(这本来就是一团糟)......我一直在思考如何使用functor类,其中的调用操作符将链接到每个不同的函数,以及一个不同的对象,其中的函数将在循环中通过参数值创建(但是,我不太熟练,不知道如何完全做到这一点) – Chrys 2013-02-21 00:25:01