我正在构建一个二叉树,我的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?