我正在重载赋值运算符,并且收到此错误。无法解决它。
这是模板类binTree中的原型
binTree <T>& operator = ( const binTree <T>& ); // assignment operator
这是方法
// assignment operator
template <class T>
void binTree <T>::binTree <T>& operator = ( const binTree <T>& p)
{
if( this != &p )
{
clear(root); // clear tree
root = copy(p.root); // copy tree
}
return *this;
}
我收到了这一行的错误
void binTree <T>::binTree <T>& operator = ( const binTree <T>& p)
答案 0 :(得分:4)
来自您的声明
binTree <T>& operator = ( const binTree <T>& );
您的班级类型是
binTree<T>::
您的会员
operator =(const BinTree<T>& p)
您的退货类型是
binTree<T>&
所以你的定义是
binTree<T>& binTree<T>::operator= (const binTree<T>& p){
// bug-free code goes here
}
答案 1 :(得分:0)
您不需要返回类型中的第二个bintree<T>
binTree <T>& operator = ( const binTree <T>& p)
编辑:从行首删除void
(复制粘贴速度过快)