知道STL map set之类是用RBTree封装的,但是需要直接访问某一节点的左右子孩子或者父节点,然后一直不知道怎么用,所以自己就写了一棵树,但是考虑到代码复用,就用template
template<typename T>
class Tree
{
public:
Tree(T*,size_t);
int insert(const T) const;
void print(int mode) const;
...
protected:
virtual int comp(const T,const T)const;//引文考虑到insert什么的用到不同类型的比较,所以定义一个comp函数
......//一堆乱七八糟的
};
下面写了一个Test
class Test:public Tree<int>
{
public:
Test(int* arr,size_t len):Tree<int>(arr,len){}
};
main()
{
int t[]={...};
Tree<int>* test=new Test(t,sizeof(t)/sizeof(int));
test->print(XX);
}
g++编译时提示undefined reference Tree<int>::Tree<int>(int*,unsigned int)和undefined referenceTree<int>::print(int)什么的好烦人,不知道哪里写错了,大家帮忙看看是哪里的问题啊
感激不尽!!!!