未声明先使用此函数-编译错误c++ LinkedList

undeclared first use this function - compile error C++ LinkedList

本文关键字:编译 错误 c++ LinkedList 函数 未声明      更新时间:2023-10-16

我有一个函数,在链表的尾部插入一个新节点:

void LinkedList::insert(Node* previousPtr, Node::value_type& newData)
{
    Node *insertPtr;
    insertPtr->setData(newData);
    insertPtr->setNext(previousPtr->getNextPtr());
    previousPtr->setNext(insertPtr);
}

在另一个函数中,我试图调用前一个:

void copyData(Node* sourcePtr, Node*& headPtr, Node*& tailPtr)
{
    ...//other code
    insert(tailPtr, sourcePtr->getData());
    ...//other code
}

编译器给出一个错误:"insert"未声明的第一次使用这个函数。我错过了什么?

你错过了像

some_linked_list->insert(some_node_ptr, ...)

或者你可以让copydata成为LinkedList类的成员:

void LinkedList::copyData(Node* sourcePtr, Node*& headPtr, Node*& tailPtr) 

LinkedList::insert是您的LinkedList类中的方法。您需要该类的一个实例来调用它。

LinkedList *myLinkedList = new LinkedList();
myLinkedList->insert( ... );