Visual c++ 链表创建头导致错误C2143:语法错误:缺少'';在'之前*';

Visual c++ 链表创建头导致错误C2143:语法错误:缺少'';在'之前*';,visual-c++,singly-linked-list,Visual C++,Singly Linked List,我试图创建一个linkedList,但是当我在一个单独的ADT中创建一个包含类节点的头时,它会产生一个错误错误C2143:语法错误:缺少“;”在“*”之前 这是节点ADT的代码 #include <iostream> #include "LinkedList.h" using namespace std; class Node { friend LinkedList; protected: int data; Node *next; public:

我试图创建一个linkedList,但是当我在一个单独的ADT中创建一个包含类节点的头时,它会产生一个错误
错误C2143:语法错误:缺少“;”在“*”之前

这是节点ADT的代码

#include <iostream>
#include "LinkedList.h"

using namespace std;

class Node
{
    friend LinkedList;
protected:
    int data;
    Node *next;

public:
    Node(int d =-999, Node *n = NULL);

    //Mutators
    void setData(int d);
    void setNext(Node *n);

    //Accessors
    int getData ();
    Node *getNext();

};

我完全不知所措,尝试了所有可能的解决方案,但无法找出这里到底出了什么问题。

发生了什么应该是显而易见的-在声明之前,您正在使用名称
节点。您需要为它提供一个转发声明,或者
#include“Node.h”
,但是,如果您执行后者,则需要从
Node.h
中删除
#include“LinkedList.h”
,否则您将得到循环包含。你不需要一个类的完整定义来声明它是一个朋友。所以基本上我的
LinkedList
类所做的就是声明它,而不是找到ADT命名节点的引用。非常感谢,增加了
类节点在我的
LinkedList.h
的directves解决了这个问题之后。
class LinkedList
{
private:
    Node *head; //This line is causing that particular error
public:
//some lines of code
};