您能否在函数参数内解释此空指针?

问题描述 投票:0回答:2

这里是有问题的代码!我没有花太多时间在C ++上,并且正在实现二进制搜索树。

void BST::Preorder(void(*visit)(const Node *))

稍后在函数上这样调用:

bst.Preorder(PrintNode)

通过以下方式实现PrintNode:

void PrintNode(const Node* n)
{
    cout << n->GetValue() << ",";
}

要求实现此Preorder功能-但是我对这里发生的事情感到非常困惑。谁能指出我的正确方向。谢谢。

c++ pointers binary-search-tree void
2个回答
1
投票

这是指向接受const Node *并返回void的函数的类型指针的参数。

换句话说,如果您具有类似func()的功能,则可以将其传递给BST::Preorder()

void func(const Node * )
{
    //do something
}

0
投票
void BST::Preorder(void(*visit)(const Node *))
  • 这是Preorder类的BST函数。
  • 该函数的参数是一个函数指针。
  • [*visit表示它是一个接受const Node *作为其自己的参数并返回void的函数指针。
© www.soinside.com 2019 - 2024. All rights reserved.