1

我正在构建一棵二叉树,并且我的 binTree 类中包含以下函数头:

public:
    ...
    void inorder(void(*)(T&));                // inorder traversal of tree
    ...
private:
    ...
    void inorder(Node<T>*, void(*)(T&));      // private version of inorder()
    ...

但是,每次我去编译我的代码时,我都会从以下实现中得到一个错误:

template<class T>
void binTree<T>::inorder(void(*)(T&) f) {
    inorder(root,f);
}

它告诉我之前应该有一个逗号f。如果我不使用 f,只要我不调用私有版本的 inorder,它就会编译。如何正确调用 inorder 的私有版本?

4

0 回答 0