Cryptic C ++“thing”(函数指针)

时间:2010-05-03 15:38:04

标签: c++ function pointers

C ++中的这种语法是什么?有人能指出我的技术术语,所以我可以看到我的文字中是否有任何内容?

起初我以为这是原型,但=(*fn)让我失望......

以下是我的例子:

void (*fn) (int&,int&) = x;

9 个答案:

答案 0 :(得分:14)

可以改写为

typedef void (*T) (int&, int&);
T fn = x;

第二个陈述是显而易见的,它应该解决= x;个问题。在第一个语句中,我们将T作为类型void(*)(int&, int&)的同义词,这意味着:

  • 指向函数((*…)
  • 的指针
  • 返回void
  • 并提出两个论点:int&, int&

答案 1 :(得分:9)

这是一个带有两个int引用参数的函数的函数指针,它不返回任何内容。函数指针名为fn,并在x中分配值。

答案 2 :(得分:2)

这声明并初始化一个函数指针。

变量的名称是fn,它指向具有以下签名的函数:

void pointedToFunction(int&, int&)

变量fn初始化为x中包含的值。

可以使用以下语法调用指向函数:

int a;
int b;
(*fn)(a,b);

这相当于

int a;
int b;
pointedToFunction(a,b);

答案 3 :(得分:2)

功能指针。

http://www.newty.de/fpt/intro.html#what

^初学者的来源。 : - )

答案 4 :(得分:0)

这是一个指向函数的指针,该函数对int进行两次引用并返回void

答案 5 :(得分:0)

这似乎是一个函数指针,它指向一个接受两个整数引用但不返回任何内容的方法。指针将命名为fn。您将它分配给x的地址,希望这是一个与此描述匹配的函数。

答案 6 :(得分:0)

它是一个指向函数的函数指针,该函数将2个整数作为参数并返回void。 x必须是函数名。

答案 7 :(得分:0)

这是一个函数指针变量,它被初始化为=右边的东西。

函数类型可以这样写:

typedef void func_t(int&,int&);

函数指针比:

typedef func_t *fn_t;

通过这些定义,变量声明将更加清晰:

 fn_t fn = ...;

答案 8 :(得分:0)

维基百科页面,其中包含一些关于该主题的链接:http://en.wikipedia.org/wiki/Function_pointer