C++带有回调函数的函数传参问题

 template<class T>
void BinaryTree<T>::InOrder(void(*vist)(BinTreeNode<T>*tr))
{
    if (root) {
        InOrder(root->leftChild, vist);
        vist(root);
        InOrder(root->rightChild, vist);
    }
}

其中root是私有成员变量,其类型为BinTreeNode,为什么第4和第6行不报错,InOrder函数参数表里只有回调函数没有BinTreeNode啊。
编译结果

你调试一下 看看这里面的函数进入的地方 是不是你圈着的这函数,或者这个函数的声明有毛病,或者进入 的函数不是这个