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

    [C++] Errore non l-value in assignment

    Salve a tutti raggazzi e ragazze..stavo scrivendo del codice e mi sono ritrovato con un dubbio inaspettato
    vi posto il codice:
    codice:
    void Albero::AddNodo() 
    { 
         char risp=scelta_nodo(); //ritorna s o n per scegliere su quale nodo inserire il nuovo dato
         if(risp=='s')
            if(!(corrente->GetNextSx())){ //GetNextSx() ritorna il puntatore al nodo successivo a sinistra
                                                       //corrente è il puntatore all'elemento corrente
                int d;
                cout<<"Inserisci il dato per il nodo: ";
                cin>>d;
    //            (corrente->GetNextSx())=new Nodo(d);
                 Nodo* tmp=corrente->GetNextSx();
                tmp=new Nodo(d);
                corrente=corrente->GetNextSx();
                return;                       
            }
    
         if(risp=='d')
            if(!(corrente->GetNextDx())){//GetNextDx() analogo di GetNextSx() ma il dx
                int d;
                cout<<"Inserisci il dato per il nodo: ";
                cin>>d;
    //            corrente->GetNextDx()=new Nodo(d);
                Nodo* tmp=corrente->GetNextDx();
                tmp=new Nodo(d);
                corrente=corrente->GetNextDx();
                return;                       
            }
         cout<<"Il nodo scelto contiene gia' un dato"<<endl;
    }
    Il problema si pone per le righe commentate non l-value in assignment. Qualcuna sa spiegarmi il motivo per cui le due righe successive fanno compilare il codice e quella commentata non mi danno il suddetto errore?
    La zona di memoria puntata è sempre la stessa.
    Ringrazio sempre in anticipo.
    --

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Non puoi scrivere

    corrente->GetNextDx()=new Nodo(d);

    perché GetNextDx() è un metodo e non puoi assegnargli un valore, anzi è quel metodo che ti restituisce un valore.
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    perché GetNextDx() è un metodo e non puoi assegnargli un valore
    vero

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.