2012-11-02 92 views
1

Possible Duplicate:
Request for member which is of non-class指向struct,包含指向一個對象,我想調用一個函數

所以我創建了一個ADT是由節點的單鏈表。這些節點都有一個指向其中稱爲數據的對象的指針。

Class Structure 
{ 
    private: 
     struct Node 
     { 
      Object *data; 
      Node *next; 
     }; 
     Node *head; 
}; 

我試圖調用一個函數的對象,像這樣:

head = new Node; 
head -> data = new Object(); 
head -> next = NULL; 

cout << head -> data.print(); 

我不斷收到以下錯誤編譯。

錯誤:請求構件在「頭戴式>結構::節點::數據」「打印」,其是非類類型「對象」 *

編輯的:感謝您的快速答案,驚人的社區。非常對我而言愚蠢的錯誤,我覺得自己像一個傻瓜嘿:P

回答

1

data是一個指針,也許你需要

cout << head -> data -> print(); 

?或者,如果函數print做印刷本身而言,也許只是

head -> data -> print(); 
1

爲指針類型,你應該使用->,而不是.訪問成員或首次使用*取消引用指針,然後使用.,所以你應該有cout << head->data->print()

0

您需要cout << head->data->print()而不是cout << head->data.print()您不能使用點運算符從指針調用方法。

相關問題