링크 목록과 노드에 대해 배우려고하고 있는데 노드 구조체에이 오류가 있다는 것을 이해하지 못합니다. 이것은 내가하려고 할 때 지금헤더 파일에 문제가있는 전달 선언
#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
로 변경 내게 필요한 기능의 프로토 타입을 추가 한 다음 헤더
#ifndef SENTENCE_H
#define SENTENCE_H
#include"word.h"
class Sentence{
public:
struct Node{
Word data;
Node * next;
};
//etc
#endif // SENTENCE_H
에 앞으로 선언하지 않고, 완벽하게 잘 작동하지만 코드 컴파일이 오류가 발생합니다 : 필드 '데이터'불완전한 형식이 있습니다. 구조체를 모두 주석 처리하면 모든 것이 잘 동작합니다. 내가 도대체 뭘 잘못하고있는 겁니까? 이것이 노드를 만드는 올바른 방법이라고 생각합니까? 아닙니다. 문장에서와 마찬가지로 단어가있는 노드의 링크 된 목록이 있습니다. 따라서 '데이터'는 워드이고 다음은 노드에 대한 포인터입니다. Word 형식은 include 문으로 인해 허용되어야합니다. 함수 원형 "Word first();에 아무런 문제가 없습니다." 코드의 기타 부분에서 '데이터'에 불완전한 유형이 있다고 말하는 이유는 무엇입니까?
왜 자신의 헤더 파일에 문장을 선언 하시겠습니까? – DaveyLaser
범인은 분명히 '워드'입니다. 그러나 당신은'Word'가 어떻게 선언되는지를 보여주지 않습니다. 어떻게 선언됩니까? – AnT
내 paragraph.h가 Sentence 클래스에 대해 알아야하기 때문에 @laser_wizard –