Visual c++ 链表创建头导致错误C2143:语法错误:缺少'';在'之前*';
我试图创建一个linkedList,但是当我在一个单独的ADT中创建一个包含类节点的头时,它会产生一个错误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:
错误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
};