错误预期初始化程序之前<代币

时间:2012-03-26 01:05:55

标签: c++ templates overloading operator-keyword

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

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

2 个答案:

答案 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(复制粘贴速度过快)