error expected initializer before < token

error expected initializer before < token

本文关键字:lt token before expected initializer error      更新时间:2023-10-16

我正在重载赋值运算符,并收到此错误。无法解决。

这是模板类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)

根据您的申报

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
}

您不需要返回类型中的第二个bintree<T>

binTree <T>& operator = ( const binTree <T>& p)

编辑:从行首删除void(复制粘贴过快的结果)