2010-11-17 79 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

相关问题