您好,如果您能帮助我理解为什么会出现以下错误以及如何修复它,我将很高兴。该错误是二进制树的一部分。

谢谢 !!

错误 -



代码的一部分-

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 ...

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

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

10-05 22:05