我想写我的类和结构实现文件。该类有来自结构的变量。我不断收到错误:编译器错误:错误:'ListNode'没有命名一个类型
LinkedList.h:70:8:错误:'ListNode'没有命名一个类型 ListNode * head;
LinkedList.h:71:8:错误:'ListNode'没有指定类型 ListNode * cursor;
LinkedList.h看起来是这样的:
#ifndef CLASS_LINKEDLIST_H
#define CLASS_LINKEDLIST_H
// Header files
#include <iostream>
#include "ListNode.h"
using namespace std;
class LinkedList
{
public:
LinkedList(int maxSize = 10);
LinkedList(const LinkedList& other);
~LinkedList();
private:
ListNode* head;
ListNode* cursor;
int capacity;
int size;
};
#endif // ifndef CLASS_LINKEDLIST
ListNode.h是这样的结构:
#ifndef STRUCT_LISTNODE_H
#define STRUCT_LISTNODE_H
using namespace std;
struct ListNode
{
ListNode(int nodeData, ListNode* nextPtr);
int dataItem;
ListNode* next;
};
#endif // STRUCT_LISTNODE_H
ListNode.cpp看起来是这样的:
#ifndef STRUCT_LISTNODE_H
#define STRUCT_LISTNODE_H
#include "ListNode.h"
#include <iostream>
ListNode:: ListNode(int nodeData, ListNode* nextPtr)
{
dataItem = nodeData;
next = nextPtr;
}
#endif // STRUCT_LISTNODE_H
这里是LinkedList.cpp的顶部
#ifndef STRUCT_LISTNODE_H
#define STRUCT_LISTNODE_H
// header files
#include "LinkedList.h"
我不允许更改.h文件,只是.cpp文件。我知道有一件简单的事情我忘记了,但我似乎无法弄清楚。
感谢您提前提供任何帮助。
* LinkedList.cpp *为什么包含警卫?它是否被另一个文件包含? –
是的,从你的CPP文件中删除包含警卫。包括警卫通常是说'#ifndef filename_h'的行。 –
这是作业,你给了头文件?如果是这样,他们担心他们在头文件中使用名称空间标准符号......在头文件中使用名称空间是一个坏主意。 –