您好,如果您能帮助我理解为什么会出现以下错误以及如何修复它,我将很高兴。该错误是二进制树的一部分。
谢谢 !!
错误 -
代码的一部分-
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;
}
最佳答案
如消息所示,您需要提供template参数:
BSNode<T>& ... const BSNode<T>& other ...
编译器可能会推断两个构造函数调用的参数。如果不是这种情况,则还需要为其提供参数。
顺便说一句,模板通常在其头文件中实现,因为通常很难或不可能将其声明与实现分开。