Я пытаюсь написать файлы реализации класса и структуры. Класс имеет переменные из структуры. Я продолжаю получать ошибки:Ошибка компилятора: ошибка: «ListNode» не называет тип
LinkedList.h: 70: 8: error: 'ListNode' не называет тип ListNode * head;
LinkedList.h: 71: 8: error: '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'. –
Это домашнее задание, и вам были предоставлены файлы заголовков? Если это так беспокоит, что они используют 'namespace std;' в заголовках ... 'using namespace' в заголовках - плохая идея. –