Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/385.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ ->;中的空白(*f)是什么意思&引用;方法名称(void(*f)(常量数据类型和)&引用;?_C++ - Fatal编程技术网

C++ ->;中的空白(*f)是什么意思&引用;方法名称(void(*f)(常量数据类型和)&引用;?

C++ ->;中的空白(*f)是什么意思&引用;方法名称(void(*f)(常量数据类型和)&引用;?,c++,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

所以,我在看教授给我的一个代码,但我不知道空白(*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 BinaryTree::inoder(void(*f)(常量T&),BTNode*node)常量//左);
f(节点->元素);
顺序(f,节点->右侧);
}

它是一个指针,指向返回
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

它是一个指针,指向返回
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++中指针>代码> f>代码>映射为<代码> x>代码>函数>类型>代码> y>代码>表示为<代码> y(*f)(x) .< /P> < P> C++中的指针<代码> f>代码>映射为类型<代码> x>代码>类型为<代码> y>代码>被称为<代码> y(*f)(x) . < /P> < P>这是函数指针. 函数获取一个函数指针作为参数

<>但是既然这已经是模板C++,我会尽量避免这个。最好改用函子。(但可能出于某种原因,它是一个函数指针)

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

<>但是既然这已经是模板C++,我会尽量避免这个。最好改用函子。(但可能出于某种原因,它是一个函数指针)