0
我想了解鏈接列表和節點,我不明白我得到我的節點結構中的這個錯誤。這是在頭正向聲明導致頭文件中的問題
#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
函數原型編譯這我得到一個錯誤:字段'數據'具有不完整的類型。如果我註釋掉結構,一切正常。我究竟做錯了什麼?我相信這是製作節點的正確方法嗎?正如在一個句子中是一個帶有單詞的節點的鏈表一樣。因此'數據'是一個字,接下來是一個指向節點的指針。由於include語句,Word類型應該是可以接受的,我對函數原型「Word first();」沒有任何問題。在代碼的其他部分,爲什麼它告訴我'數據'有一個不完整的類型?
你爲什麼要在自己的頭文件中聲明Sentence? – DaveyLaser 2014-10-16 18:59:47
罪魁禍首顯然是'Word'。但是你沒有說明'Word'是如何聲明的。它是如何聲明的? – AnT 2014-10-16 19:04:47
@laser_wizard因爲我的paragraph.h需要知道句子類 – 2014-10-17 18:39:31