Salve,
come da titolo ho un problema quando provo a passare un doppio puntatore,
io ho questa classe:
e questo metodo:codice:template <typename T> class BinaryNode { private: T key; BinaryNode<T>* left; BinaryNode<T>* right; BinaryNode<T>* parent; public: T getkey() const { return key; } void setkey(T k){ key = k; } BinaryNode<T>* getleft() const { return left; } void setleft(BinaryNode<T>* l){ left = l; } BinaryNode<T>* getright() const { return right; } void setright(BinaryNode<T>* r){ right = r; } BinaryNode<T>* getparent() const { return parent; } void setparent(BinaryNode<T>* p){ parent = p; } };
Solo che quando vado a compilare mi da errore nella linea commentatacodice:template <typename T>void BinarySearchTree<T>::insert(BinaryNode<T>** node, T key) { if (*node == NULL) { *node = this->newNode(key); cout << "-Creating... " << (*node)->getkey() << endl << endl; } else { if (key <= (*node)->getkey()) { cout << "<-Left" << endl; insert(&(*node)->left, key); //in questa linea mi da errore (*node)->getleft()->setparent(*node); } else { cout << "Right->" << endl; insert(&(*node)->right, key); //in questa linea mi da errore (*node)->getright()->setparent(*node); } } }
questo errore:
Qualcuno sa come risolverlo?1>------ Inizio compilazione: Progetto: [ASD]Vocabolario, Configurazione: Debug Win32 ------
1> main.cpp
1>c:\users\davide\dropbox\davide\[asd]\progetto\[asd]vocabolario\[asd]vocabolario\classi.h(124): error C2102: '&' richiede un l-value
1> c:\users\davide\dropbox\davide\[asd]\progetto\[asd]vocabolario\[asd]vocabolario\classi.h(113): durante la compilazione della classe modello, funzione membro 'void BinarySearchTree<std::string>::insert(BinaryNode<T > **,T)'
1> with
1> [
1> T=std::string
1> ]
1> c:\users\davide\dropbox\davide\[asd]\progetto\[asd]vocabolario\[asd]vocabolario\classi.h(104): vedere il riferimento all'istanza del modello di funzione 'void BinarySearchTree<std::string>::insert(BinaryNode<T > **,T)' in corso di compilazione
1> with
1> [
1> T=std::string
1> ]
1> c:\users\davide\dropbox\davide\[asd]\progetto\[asd]vocabolario\[asd]vocabolario\classi.h(103): durante la compilazione della classe modello, funzione membro 'void BinarySearchTree<std::string>::insert(T)'
1> with
1> [
1> T=std::string
1> ]
1> c:\users\davide\dropbox\davide\[asd]\progetto\[asd]vocabolario\[asd]vocabolario\main.cpp(25): vedere il riferimento all'istanza del modello di funzione 'void BinarySearchTree<std::string>::insert(T)' in corso di compilazione
1> with
1> [
1> T=std::string
1> ]
1> c:\users\davide\dropbox\davide\[asd]\progetto\[asd]vocabolario\[asd]vocabolario\main.cpp(9): vedere il riferimento all'istanza del modello di classe 'BinarySearchTree<std::string>' in corso di compilazione
1>c:\users\davide\dropbox\davide\[asd]\progetto\[asd]vocabolario\[asd]vocabolario\classi.h(130): error C2102: '&' richiede un l-value
========== Compilazione: 0 completate, 1 non riuscite, 0 aggiornate, 0 ignorate ==========
Grazie mille,
Bye![]()


Rispondi quotando
