Я пытаюсь узнать о списках ссылок и узлах, и я не понимаю эту ошибку, которую я получаю в моей структуре узла. Это код, который работал прекрасно, без прямого заявления в заголовкеПрямое объявление, вызывающее проблемы в файле заголовка
#ifndef SENTENCE_H
#define SENTENCE_H
#include"word.h"
class Sentence{
public:
struct Node{
Word data;
Node * next;
};
//etc
#endif // SENTENCE_H
, но тогда я должен был добавить прототипы функций, которые требовали, чтобы я изменил это
#ifndef SENTENCE_H
#define SENTENCE_H
class Sentence;
#include"paragraph.h"
#include"word.h"
class Sentence{
public:
struct Node{
Word data;
Node * next;
};
//etc, etc
теперь, когда я пытаюсь компилируем это, я получаю сообщение об ошибке: поле «данные» имеет неполный тип. Если я прокомментирую структуру, все работает нормально. Что я делаю не так? Я считаю, что это правильный способ сделать узел, не так ли? Так как в Sentence есть связанный список Узлов с Словами в них. Таким образом, «данные» - это Word, а затем - указатель на узел. Тип Word должен быть приемлемым из-за оператора include, у меня нет проблем с прототипом функции «Word first();» в и т. д. кода, так почему он говорит мне, что «данные» имеют неполный тип?
Почему вы переадресовываете Sentence в собственный заголовочный файл? – DaveyLaser
Преступник, очевидно, «Слово». Но вы не показываете, как объявляется слово. Как это объявлено? – AnT
@laser_wizard, потому что мой пункт.h должен знать о классе Sentence –