这里是有问题的代码!我没有花太多时间在C ++上,并且正在实现二进制搜索树。
void BST::Preorder(void(*visit)(const Node *))
稍后在函数上这样调用:
bst.Preorder(PrintNode)
通过以下方式实现PrintNode:
void PrintNode(const Node* n)
{
cout << n->GetValue() << ",";
}
要求实现此Preorder功能-但是我对这里发生的事情感到非常困惑。谁能指出我的正确方向。谢谢。
这是指向接受const Node *
并返回void
的函数的类型指针的参数。
换句话说,如果您具有类似func()
的功能,则可以将其传递给BST::Preorder()
void func(const Node * )
{
//do something
}
void BST::Preorder(void(*visit)(const Node *))
Preorder
类的BST
函数。*visit
表示它是一个接受const Node *
作为其自己的参数并返回void的函数指针。