2012-03-26 21 views
1

Ich überbelaste den Zuweisungsoperator und erhalte diesen Fehler. Kann es nicht lösen. HierFehler erwartete Initialisierung vor <Token

ist der Prototyp innerhalb Template-Klasse Bintree

binTree <T>& operator = (const binTree <T>&); // assignment operator 

Hier wird das Verfahren

// 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; 
} 

Ich erhalte den Fehler auf dieser Linie

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

Antwort

4

Aus Ihrer Erklärung

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

Ihr Klassentyp ist

binTree<T>:: 

Ihr Mitglied ist

operator =(const BinTree<T>& p) 

Ihr Rückgabetyp

binTree<T>& 

So Ihre Definition ist

binTree<T>& binTree<T>::operator= (const binTree<T>& p){ 
    // bug-free code goes here 
} 
+3

@ user1236803 Sie sind herzlich willkommen. Sie können Fragen als gelöst markieren, indem Sie das Häkchen neben der Frage markieren. –

0

Sie haben nicht die Notwendigkeit zweite bintree<T> im Rückgabetyp

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

EDIT: entfernt void von Anfang der Zeile (das Ergebnis zu schnell Copy-Paste)

+0

mir genau die gleichen Fehler geben – user1236803

+0

Sie haben Recht, Sie brauchen nicht auf die 'void' entweder - eilt Kopier- einfügen ... (korrigiert) – Attila

Verwandte Themen