C++ ->;中的空白(*f)是什么意思&引用;方法名称(void(*f)(常量数据类型和)&引用;?
所以,我在看教授给我的一个代码,但我不知道空白(*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
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++,我会尽量避免这个。最好改用函子。(但可能出于某种原因,它是一个函数指针)