C ++如何解释函数参数long(* pPointer)(OtherClass * const,long)?

时间:2018-08-09 10:38:41

标签: c++

我对这种语法没有任何意义。应该传递给函数什么?类型为long的指针,还是指向OtherClass实例的指针?到底,long是什么意思?

在doxygen文档中,此语法解析为:

long(*)(OtherClass *const, long)    pPointer,

我尝试搜索这种语法的示例,但是很难搜索大括号和星号。

2 个答案:

答案 0 :(得分:1)

它是指向一个函数的指针,该函数接受其他类型的参数和long并返回long。函数指针的名称是pPointer。

答案 1 :(得分:1)

这是一个指向名为pPointer的函数的指针(此处的名称值得商bat)。想象一下此函数在您的代码库中的某处:

long someFunction(OtherClass *const param1, long param2);

它可以作为问题标题中的类型传递给

passFct(someFunction);

接收功能可能看起来像

void passFct(long (*pPointer) (OtherClass *const, long))
{
    /* ... */

    /* Actually call the function to with pPointer points: */
    pPointer(&otherClassInstance, 10l);
}