空洞(* f)在 - >中的意思是什么“methodName(void(* f)(const Datatype&));”?

时间:2014-03-21 06:46:15

标签: c++

所以,我正在看我教授给我的一个代码,但我不知道虚空(* f)意味着什么,有人可以澄清吗?

template<class T>
void BinaryTree<T>::inorder( void (*f)(const T&), BTNode<T> *node ) const //<-- right here
{
  if (!node)
    return;
  inorder(f, node->left); 
  f(node->elem);
  inorder(f, node->right);
}

3 个答案:

答案 0 :(得分:5)

它是指向返回void并取const T&参数的函数的指针。指针的名称,如果f

void foo(const T&);   // a function declaration

void (*f)(const T&);  // function pointer

f = &foo;             // Can assign &foo to f, return type and signature match

答案 1 :(得分:0)

在C ++中,将F类型映射到类型X的函数的指针Y表示为Y (*F)(X)

答案 2 :(得分:0)

这是功能指针。 该函数获取一个指针指针作为参数。

但由于这已经是模板c ++,我会尽量避免这种情况。最好使用仿函数。 (但由于某种原因可能是它的函数指针)

相关问题