ожидаемая ошибка инициализатора до <токена - PullRequest
1 голос
/ 26 марта 2012

Я перегружаю оператор присваивания и получаю эту ошибку.Не могу решить.

Вот прототип внутри шаблона класса 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 ]

4 голосов
/ 26 марта 2012

Из вашей декларации

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
}
0 голосов
/ 26 марта 2012

Вам не нужен второй bintree<T> в типе возврата

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

РЕДАКТИРОВАТЬ: удалено void из начала строки (результат слишком быстрой копирования-вставки)

...