以下是代码段。
class NetworkRequestChannel {
public:
...
NetworkRequestChannel(const unsigned short _port_number,
void * (*connection_handler) (int *));
...
private:
...
}
我的问题是关于论点void * (*connection_handler) (int *)
。我有一个模糊的想法如何阅读它,它作为一个空指针指向一个名为connection_handler
的对象,然后被转换为int指针。但我知道这几乎肯定是错的,而且我不确定如何解释它。
答案 0 :(得分:1)
论点
void * (*connection_handler) (int *)
是指向函数的指针,该函数采用int*
类型的一个参数并返回void*
答案 1 :(得分:0)
这是函数指针的语法。有问题的参数接受一个函数,该函数将单个int*
作为参数并返回void*
值(通用内存地址)。
您可以详细了解here。
(这是一篇相当古老的文章,我鼓励人们评论或编辑这个答案,列出那些强调现代C ++实践的答案。如果我链接的文章实际上与最佳实践保持同步,请忽略这一点。)