问题描述
|
我有一个“从这里实例化”的问题。
template <typename E>
class tree
{
public:
tree(){root=0;}
void addAVL( const E &data) throw(bad_alloc);
private:
class Node
{
public:
E data;
Noeud * left;
Noeud * right;
int high;
std::string adHier;
Noeud( const E&d ): data( d right( 0 ),left( 0 ),high(0),adHier(\"\") { }
};
Node * root;
};
#include \"AVL.inl\"
/*-------------------------
*in my inl
*/
template <typename E>
void tree<E>::addAVL( const E &data) throw(bad_alloc)
{
// if the trre is empty
if ( root == 0 )
{
root = new Node(data); // HERE my error when in a cpp I call addAVL
}
}
我的错误是:
../AVL.inl:98: instantiated from ‘void AVL_Lab10::tree<E>::addAVL(const E&) [with E = int]’
../TestingAVL.cpp:30: instantiated from here
解决方法
Noeud * left;
Noeud * right;
Noeud( const E&d ): ...
我猜应该是Node
而不是Noeud
?如果您纠正这些错别字,是否可以解决您的错误?
,最后,我没有找到问题,但我可以建立...我的老师说他的samme问题与eclipse中的gcc编译器有关。很好奇,因为每次我在.inl中添加一些代码并保存时。错误图标显示....
谢谢您的帮助 ! :D