碘化锂钼铁 2021-08-06 20:00 采纳率: 0%
浏览 30

编写了一个链表,想使用回调函数实现链表的遍历,用删除函数测试,出现了<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

  • 写回答

1条回答 默认 最新

  • orange4reg 2021-08-06 21:39
    关注

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

    评论

报告相同问题?

问题事件

  • 创建了问题 8月6日

悬赏问题

  • ¥15 java面向对象程序设计
  • ¥20 Keil uVision5创建project没反应
  • ¥15 mmseqs内存报错
  • ¥15 vika文档如何与obsidian同步
  • ¥15 华为手机相册里面的照片能够替换成自己想要的照片吗?
  • ¥15 陆空双模式无人机飞控设置
  • ¥15 sentaurus lithography
  • ¥100 求抖音ck号 或者提ck教程
  • ¥15 关于#linux#的问题:子进程1等待子进程A、B退出后退出(语言-c语言)
  • ¥20 web页面如何打开Outlook 365的全球离线通讯簿功能