编写了一个链表,想使用回调函数实现链表的遍历,用删除函数测试,出现了<unresolved overloaded function type>


#include <iostream>
using namespace std;

template <class Type>
struct Node
{
    Type data;
    Node<Type>* next;
    Node();
    Node(Type data);
};

template <class Type>
Node<Type>::Node(){}

template <class Type>
Node<Type>::Node(Type data)//基于数据创建节点
{
    this->data = data;
    this->next = NULL;
}


template <class Type>
class LinkList
{
    private:
        Node<Type> head;
    public:
        int length=0;
        LinkList(Node<Type> &node);
        Node<Type>* nodeAt(int index);
        int indexOf(Node<Type>* pNode);
        bool setNode(Type data,Node<Type>* pNode);
        bool insert(Type data,Node<Type>* pNode);
        bool deletepNode(Node<Type>* pNode);//涉及到最后这三个函数
        void Traverse(bool (*vist)(Node<Type>* node));//涉及到最后这三个函数
        bool clear();//涉及到最后这三个函数

};

template <class Type>
bool LinkList<Type>::deletepNode(Node<Type>* pNode)
{
    Node<Type>* tempPNode=head.next;
    for (;tempPNode!=NULL;tempPNode = tempPNode->next)
    {
        if (tempPNode->next==pNode)
        {
            tempPNode->next = pNode->next;
            delete pNode;
            length--;
            return true;
        }       
    }
    return false;
}

template<class Type>
void LinkList<Type>::Traverse(bool (*vist)(Node<Type>* node))
{
    Node<Type> tempNode=head;
    while (tempNode.next!=NULL)
    {
        vist(tempNode.next);
        tempNode = *tempNode.next;
    }
}

template <class Type>
bool LinkList<Type>::clear()
{
    Traverse(deletepNode);
    return true;
}

下面是报错信息
img

类的回调函数要把类写上去。好像挺麻烦的,我以前有弄过,现在有些忘记了