C++ 函数返回节点指针

C++ 函数返回节点指针,c++,pointers,object,struct,linked-list,C++,Pointers,Object,Struct,Linked List,各位!!我正在制作自己的链表模板,以供实践和将来使用;但是,我的一个函数遇到了问题: 节点*LinkedList::FindNode(int x)//用于遍历列表并返回指向包含x的指针作为其数据 当试图在我的实现文件中声明它时,我不断收到节点未定义和不兼容错误的消息 这是我的头文件: #pragma once using namespace std; class LinkedList { private: struct Node { int data;

各位!!我正在制作自己的链表模板,以供实践和将来使用;但是,我的一个函数遇到了问题:

节点*LinkedList::FindNode(int x)//用于遍历列表并返回指向包含x的指针作为其数据

当试图在我的实现文件中声明它时,我不断收到节点未定义和不兼容错误的消息

这是我的头文件:

#pragma once
using namespace std;

class LinkedList
{
private:
    struct Node 
    {   
        int data;
        Node* next = NULL;
        Node* prev = NULL;
    };

    //may need to typedef struct Node Node; in some compilers

    Node* head;  //points to first node
    Node* tail; //points to last node
    int nodeCount; //counts how many nodes in the list

public:
    LinkedList(); //constructor 
    ~LinkedList(); //destructor
    void AddToFront(int x); //adds node to the beginning of list
    void AddToEnd(int x); //adds node to the end of the list
    void AddSorted(int x); //adds node in a sorted order specified by user
    void RemoveFromFront(); //remove node from front of list; removes head
    void RemoveFromEnd(); //remove node from end of list; removes tail
    void RemoveSorted(int x); //searches for a node with data == x and removes it from list 
    bool IsInList(int x); //returns true if node with (data == x) exists in list
    Node* FindNode(int x); //returns pointer to node with (data == x) if it exists in list
    void PrintNodes(); //traverses through all nodes and prints their data
};
如果有人能帮我定义一个返回节点指针的函数,我将不胜感激


谢谢大家!

由于
节点
是在另一个类中声明的,您是否记得在实现中引用它时包含类名

LinkedList::Node *LinkedList::FindNode(int x) { ... }

在类声明中不需要前缀,因为声明在类内,因此
节点
隐式可用。

由于
节点
在另一个类内声明,您是否记得在实现中引用它时包含类名

LinkedList::Node *LinkedList::FindNode(int x) { ... }

在类声明中不需要前缀,因为声明在类内,因此
节点
隐式可用。

由于
节点
在另一个类内声明,您是否记得在实现中引用它时包含类名

LinkedList::Node *LinkedList::FindNode(int x) { ... }

在类声明中不需要前缀,因为声明在类内,因此
节点
隐式可用。

由于
节点
在另一个类内声明,您是否记得在实现中引用它时包含类名

LinkedList::Node *LinkedList::FindNode(int x) { ... }

在类声明中不需要前缀,因为声明在类内部,因此
节点
隐式可用。

如果公共函数应该返回
节点*
,为什么节点是私有的?您确定将自己的链表模板设置为“供将来使用”是个好主意吗?为什么不使用
std::list
?如果一个公共函数应该返回一个
节点*
,为什么节点是私有的?您确定将自己的链表模板设置为“供将来使用”是个好主意吗?为什么不使用
std::list
?如果一个公共函数应该返回一个
节点*
,为什么节点是私有的?您确定将自己的链表模板设置为“供将来使用”是个好主意吗?为什么不使用
std::list
?如果一个公共函数应该返回一个
节点*
,为什么节点是私有的?您确定将自己的链表模板设置为“供将来使用”是个好主意吗?为什么不使用
std::list
?这正是我想要的。非常感谢你!这正是我想要的。非常感谢你!这正是我想要的。非常感谢你!这正是我想要的。非常感谢你!