0
我的節點類的微光,並從中C++類在層次結構沒有數據成員
class node
{
public:
node();
~node();
node *& getNext();
protected:
node * next;
};
class word: public node
{
public:
word();
~word();
protected:
char ** words; //an array of char pointers
};
派生的類,我有
class sentence
{
public:
sentence();
~sentence();
void insert(node *& head, char *& word_to_add);
sentence *& operator+=(char *& sentence_to_add);
void remove(char *& word_to_remove);
void testing(sentence *& s);
void display();
void removeAll();
protected:
node * head;
};
這裏另一個類是我實現的插入功能
void sentence::insert(node *& head, char *& word_to_add)
{
if(!head)
{
head = new word;
insert(head, word_to_add);
}
else
{
for(int i = 0; i < MAX_WORD; ++i)
{
if(!head->words[i])
{
head->words[i] = new char[strlen(word_to_add)+1];
strcpy(head->words[i], word_to_add);
cout << head->words[i] << endl;
return;
}
}
insert(head->getNext(), word_to_add);
}
}
我收到錯誤類節點沒有數據成員命名的單詞。但是,如果我要將原型void insert(node *& head, char *& word_to_add);
更改爲void insert(word *& head, char *& word_to_add);
,它會說該單詞下一個沒有數據成員。我有點卡住了,因爲我在之前的程序中這樣做,它工作得很好。我想知道我做錯了什麼,所以如果有人能指出這一點,那會很棒!
編輯:我忘了,包括我使用的類單詞朋友關鍵字。出於測試目的。 friend class sentence;
我創建了自己的數據結構,並將節點類用作多個類的基類。 – ZZPLKF
可能更適合使用模板和組合而不是繼承。 –