二叉树函数不适用于模板

时间:2015-01-04 15:33:08

标签: c++ templates compiler-errors binary-tree

您好我很高兴您能帮助我理解为什么会出现以下错误以及如何解决它,错误是二叉树的一部分。

谢谢!!

错误 -

  

错误C2955'BSNode':使用类模板需要模板参数列表

代码的一部分 -

template <class T>
BSNode& BSNode::operator=(const BSNode& other)
{
_data = other._data;
_left = 0;
_right = 0;

//deep recursive copy
if (other._left)
{
    _left = new BSNode(*other._left);
}

if (other._right)
{
    _right = new BSNode(*other._right);
}

return *this;
} 

1 个答案:

答案 0 :(得分:0)

如消息所示,您需要提供模板参数:

BSNode<T>& ... const BSNode<T>& other ...

编译器可能会推断出两个构造函数调用的参数。如果不是这种情况,您也需要为它们提供参数。

顺便说一句,模板通常在其头文件中实现,因为通常很难或不可能将其声明与其实现分开。