C ++函数指针和预置参数

时间:2010-08-23 08:55:54

标签: c++ function-pointers

说我有一个函数f(a, b, c)。是否可以创建函数指针gh,这样当您使用gh时,它们会为其中一个参数使用预定值?

例如(*g)(b, c)相当于f(1, b, c),而(*h)(b, c)相当于调用f(2, b, c)

我之所以这样做是因为我正在调用一个函数,我可以获取一个指针(通过dlsym),这个函数的行为完全不同,这取决于第一个参数是什么(以至于它们不应该'真的被称为同一件事)。更重要的是,在主程序中使用的函数指针变量通常只能采用两个参数,因为这是一个特殊情况,其中导入的函数有三个(但实际上只有两个是必需的,一个本质上是一个设置参数)。 p>

感谢。

1 个答案:

答案 0 :(得分:3)

如果您已将函数g指定为

,我不明白为什么您可以这样做
void gfunc(int b, int c) { 
  f (1, b, c); 
}
g = &gfunc;

在C ++中执行此操作的更好方法可能是使用仿函数。