PDA

Visualizza la versione completa : [C++] Errore accesso classi con set/get


mario.pinola
28-02-2017, 13:12
Salve ragazzi,


Ho un problema con la funzione inserimento di un albero binario:

Ho due classi:
-nodo con chiave puntatore sx e puntatore dx

-Una tree




Nella funzione inserisci:

Se uso get quando richiamo inserisci mi da errore "Non-const lvalue reference to type Nodo* cannot bind to a temporary of type Nodo*"


Nodo* get_sx(){return sx;}




void tree::insert (Nodo* &nodo, int key)
{
while (nodo!=nullptr)
{
if(key<nodo->get_chiave())
{
return inserisci(nodo->get_sx(),key); //<--Non-const lvalue reference to type Nodo* cannot bind to a temporary of type Nodo*
}

if(key>nodo->get_chiave())
{

return inserisci(nodo->get_dx(),key); //<--Non-const lvalue reference to type Nodo* cannot bind to a temporary of type Nodo*
}
}
if(nodo==nullptr)
{
Nodo* nuovo_n= new Nodo(key);
nodo=nuovo_n;
}
}




Se invece rendo pubblico il nodo sinistro e destro e richiamo la funzione senza utilizzare get come segue
return inserisci(nodo->sx,nuovo);
non ho errori.

Qualcuno sa come posso, risolvere?

Ho provato anche a farlo iterativo ma non scrive i dati, ho provato con un puntatore d'appoggio e nemmeno ho avuto buoni risultati.

Grazie in anticipo.

Scara95
01-03-2017, 08:10
Stai cercando di prendere l'indirizzo di qualcosa "che ne privo". Per utilizzare una reference hai bisogno di quello che viene detto un lvalue, ovvero qualcosa di cui puoi prendere l'indirizzo e a cui puoi puntare.

Loading