2010-11-17 21 views
1

我目前正在嘗試做一個作業,並試圖讓我的東西編譯(.h文件中的類標題以及.inl文件中的空定義(我正在使用typename模板))。C++ - 編譯樹上的作業錯誤:錯誤:期望的構造函數,析構函數或類型轉換之前的'*'標記

我得到這個錯誤:

error: expected constructor, destructor, or type conversion before ‘*’ token 

這是我的.h文件:http://ideone.com/dm3Bp

這是我的.INL文件:http://ideone.com/5FBep

我試圖做一個節點(稱爲Noeud,在這些文件中).inl文件的末尾。 顯然,我不能從E型數據的陣列取一個值......

的錯誤僅僅是方法的定義之前:

Noeud * Arbre<E>::_auxPereSym(E *tabS, int debut, int fin, E **ptr, int &card) throw (std::bad_alloc) 

我在其他線程讀到,返回類型應該是Arbre < E> :: Noeud因爲Noeud是我的類Arbre的嵌套結構...但不幸的是,我無法更改頭文件...

任何想法?

感謝您的時間和幫助。

注意:讓我知道如果需要翻譯任何東西,這是一個法國作業。

回答

3

在定義.inl文件(而不是根據您的擔心標題文件)時嘗試限定。

返回類型需要在適當的範圍內查找。

BRAIN編譯代碼AHEAD

template<typename E> 
typename Arbre<E>::Noeud * Arbre<E>::_auxPereSym(E *tabS, int debut, int fin, E **ptr, int &card) throw (std::bad_alloc) 

EDIT2:在成員函數作爲這樣

變化return語句:

return new typename Arbre<E>::Noeud(tabS[0]); 
+0

我試圖做的是,現在我還有一個錯誤,那可能沒有關係,但它說:../BST.h:在構造函數'Arbre_Lab8 :: Arbre :: Noeud :: Noeud(const E&)[with E = int]'中: ../BST.inl: 78:實例化從'Arbre_Lab8 :: Arbre :: Noeud * Arbre_Lab8 :: Arbre :: _ auxPereSym(E *,int,int,E **,int&)[with E = int]' ../BST.inl:28:從'Arbre_Lab8 :: Arbre :: Arbre(E *,int,int,E **,int&)[with E = int]' – Pacane 2010-11-17 02:45:38

+1

@Pacane:Oops!我的疏忽。已更新我的帖子 – Chubsdad 2010-11-17 02:57:34

+0

它給了我與新的return語句相同的錯誤。 – Pacane 2010-11-17 03:03:34

相關問題