Visualizzazione dei risultati da 1 a 2 su 2
  1. #1

    [C++] Errore accesso classi con set/get

    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*"

    codice:
    Nodo* get_sx(){return sx;}

    codice:
    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
    codice:
    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.

  2. #2
    Utente di HTML.it L'avatar di Scara95
    Registrato dal
    Jul 2009
    residenza
    Zimella (VR)
    Messaggi
    2,590
    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.
    "Quid enim est, quod contra vim sine vi fieri possit?" - Cicerone, Ad Familiares

Tag per questa discussione

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.