我正在构建一棵二叉树,并且我的 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 的私有版本?