[英]what does the void(*f) mean in -> “methodName( void (*f)(const Datatype&));”?
所以,我正在看教授给我的代码之一,但是我不知道void(* 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);
}
它是指向返回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
在C ++中,指向将类型X
映射到类型Y
的函数的指针F
表示为Y (*F)(X)
。
这是一个函数指针。 该函数获取函数指针作为参数。
但是由于这已经是模板c ++,所以我会尽量避免这种情况。 最好改用仿函数。 (但出于某种原因可能是其功能指针)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.