2014-12-07 72 views
-1

我有一個包含這個類定義的報頭文件中:錯誤:「(Class對象)」沒有指定類型

class visitorlist { 
     struct Node { 
      visitor vis; 
      Node* next; 
     }; 
     Node* head; 
     Node* tail; 
    public: 
     visitorlist() {  //written here to have it as inline. 
      head = NULL; 
      tail= NULL; 
     } 
     ~visitorlist(); 
     int lengthvl(); 
     void add(const visitor); 
     void popandexit(); 
     void transfer(visitorlist); 
     void deletenode(Node*); 
     int refiprio(); 
     int refioffno(); 
     int refifloor(); 
     visitor reravi(); 
     bool isempty(); 
     Node* rehead(); 

    }; 

和與上述報頭中的源文件包括我有:

Node* visitorlist::rehead() { 
    return head; 
} 

這會導致error: 'Node' does not name a type。 不是功能範圍上的節點嗎?

+3

visitorlist ::節點 – Borgleader 2014-12-07 16:30:56

+0

'Node'嵌套visitorList'的'裏面,所以你需要用'visitorList ::節點「,但它是一個私人類,所以名字不可見。 – juanchopanza 2014-12-07 16:31:39

+0

但這樣就足夠了嗎? – 2014-12-07 16:31:39

回答

2

使用

visitorlist::Node* visitorlist::rehead() { 
    return head; 
} 

或者,因爲C++ 11:

auto visitorlist::rehead() -> Node* { 
    return head; 
}