C++ 错误:未命名类型(c+;+;)

C++ 错误:未命名类型(c+;+;),c++,list,pointers,object,C++,List,Pointers,Object,我在尝试创建使用LinkedList和Node类的链接列表时遇到了一些问题。在列表类中,如何创建头、当前和临时对象?我想我可以将它们初始化为对象,然后调用默认的Node()构造函数,并为它们分配一个数据和指针变量。但是我得到了一个错误:'Node'没有命名类型,并且'head'没有在此范围内声明对象head,curr和temp。 这是我的密码: LinkedList.cpp: #include <iostream> #include <cstdlib> #include

我在尝试创建使用
LinkedList
Node
类的链接列表时遇到了一些问题。在
列表
类中,如何创建
当前
临时
对象?我想我可以将它们初始化为对象,然后调用默认的
Node()
构造函数,并为它们分配一个数据和指针变量。但是我得到了一个错误:
'Node'没有命名类型
,并且
'head'没有在此范围内声明对象
head
curr
temp
。 这是我的密码:

LinkedList.cpp:

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

using namespace std;

LinkedList::LinkedList() { 
    head = NULL;
    curr = NULL;
    temp = NULL;

    cout << "Blank list created." << endl;
}

LinkedList::LinkedList(value_type addData) {
    Node n(addData);
}
Node.cpp:

#include <iostream>
#include <cstdlib>
#include "Node.h"

using namespace std;

Node::Node() {
    nodePtr n = new node;
    n->next = NULL;
    n->data = NULL;

}

Node::Node(value_type addData) {
    nodePtr n = new node;
    n->next = NULL;
    n->data = addData;

}

任何帮助都将不胜感激,谢谢各位

看看编译器如何处理
LinkedList.c
。首先是:

...
#include "LinkedList.h"
#include "Node.h"
...
然后计算
#include
指令,并将
LinkedList.h
Node.h
拉入源:

...
class LinkedList {
...
  Node head;
  Node curr;
  Node temp;
};

class Node {
...
};
然后它尝试编译这个,直到“Node head;”(当它还没有到达类
节点的声明时),并抱怨它不知道您在说什么


声明
类LinkedList
的文件需要知道
节点是什么。将
#包含“Node.h”
放在
LinkedList.h
顶部附近(并将标题保护添加到
Node.h
),您将不会遇到此问题。

看看编译器如何处理
LinkedList.c
。首先是:

...
#include "LinkedList.h"
#include "Node.h"
...
然后计算
#include
指令,并将
LinkedList.h
Node.h
拉入源:

...
class LinkedList {
...
  Node head;
  Node curr;
  Node temp;
};

class Node {
...
};
然后它尝试编译这个,直到“Node head;”(当它还没有到达类
节点的声明时),并抱怨它不知道您在说什么


声明
类LinkedList
的文件需要知道
节点是什么。将
#包含“Node.h”
放在
LinkedList.h
顶部附近(并将标题保护添加到
Node.h
),您就不会遇到此问题。

添加
#将“Node.h”
包含到
LinkedList.h
。添加
#包含“Node.h”
LinkedList.h
。啊好的。我试过了,但又收到了一大堆错误:我不知道它们指的是什么。我有标题保护,只是试图压缩帖子,所以我没有包含它们。@Lachie:你写了很多代码,但没有测试任何代码,然后你解决了在文件顶部停止编译器的问题;现在,编译器可以越过这一点,大声抱怨许多其他错误。我认为从这里开始最好的方法是要么简化代码直到没有错误,要么从头开始,然后慢慢地重新引入复杂性,每一步都进行测试,永远不要添加不起作用的代码。(请注意,您不知道这些错误消息指的是什么?谷歌可以提供帮助,堆栈溢出也可以。)啊,好的。我试过了,但又收到了一大堆错误:我不知道它们指的是什么。我有标题保护,只是试图压缩帖子,所以我没有包含它们。@Lachie:你写了很多代码,但没有测试任何代码,然后你解决了在文件顶部停止编译器的问题;现在,编译器可以越过这一点,大声抱怨许多其他错误。我认为从这里开始最好的方法是要么简化代码直到没有错误,要么从头开始,然后慢慢地重新引入复杂性,每一步都进行测试,永远不要添加不起作用的代码。(请注意,您不知道这些错误消息指的是什么?谷歌可以提供帮助,堆栈溢出也是如此。)