2010-10-30 97 views
1

我收到了一個錯誤,我不明白。甚至還有一個類似的問題就是我發現的,但是給出的修正已經在我的代碼中。實例化模板類時出現奇數錯誤消息

ForestNode<NODETYPE> foo = new ForestNode<NODETYPE> ForestNode(bar); 

,上面寫着:

我在這條線得到一個錯誤

\項目4 \ forest.h | 85 |錯誤:預期 '' 或 ';' 'ForestNode' 之前

我班forestnode是defindes這樣:

template<typename NODETYPE> class Forest; 

template<typename NODETYPE> class ForestNode 
{ 
    friend class Forest<NODETYPE>; 

    public: 
     ForestNode(const NODETYPE &); 
     ~ForestNode(); 
     NODETYPE getTag() const; 
    private: 
     NODETYPE tag; 
     ForestNode<NODETYPE> *leftChild; 
     ForestNode<NODETYPE> *sibling; 
}; 

任何想法?

+0

由於您使用'new',你可能打算讓'foo'成爲*指針*:'ForestNode * foo'。 – 2010-10-30 06:08:19

回答

1

您在構造函數調用具有類型名稱兩次,嘗試:

ForestNode<NODETYPE> foo = new ForestNode<NODETYPE>(bar); 
+0

呵呵。我應該去睡覺,那是疲倦的時候對你的編碼。甚至沒有想過這意味着什麼。謝謝。 – joedillian 2010-10-30 06:58:52

1

除了有一個2層線的構造,你不能將指針分配給變量。您必須這樣做:

ForestNode * foo = new ForestNode;

或做到這一點:

ForestNode<NODETYPE> foo; 

或本:

ForestNode<NODETYPE> bar; 
ForestNode<NODETYPE> foo(bar); 
相關問題