Visualizzazione dei risultati da 1 a 4 su 4

Discussione: errore return C++

  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2013
    Messaggi
    8

    errore return C++

    Buongiorno a tutti ho un piccolo problema con del codice che sto sviluppando. Sto cercando di realizzare un hash table con chaining e ho un piccolissimo problema che a me sta facendo uscir di testa.
    In pratica inizialmente avevo organizzato tutte le mie classi dichiarando intestazione dei metodi e corpo del codice tutto insieme, in seguito volendo organizzare meglio il codice ho deciso di usare gli scope :: e quindi scrivere i corpi dei metodi apparte. Cosa strana è che codice identico mi da errore su un return. Vi posto il codice in questione cosi magari potete darmi una mano, vi ringrazio tantissimo!!!

    codice:
    class Elemento { 
    private: 
    int key; 
    string vocabolo; 
    string value; 
    Elemento *next; 
    public:
    Elemento *getNext(); 
    };
    
    Elemento::Elemento *getNext() 
    {
     return next;
     }
    Ovviamente vi ho postato solo il metodo in questione gli altri li ho omessi!

    L'errore in questione è il seguente:
    |In function 'Elemento* getNext()':|
    |53|error: 'next' was not declared in this scope|
    ||=== Build finished: 1 errors, 0 warnings ===|

    Ma la cosa strana è che se organizzo il codice in modo diverso, nel senso se scrivo tutto il corpo del metodo direttamente sopra tutto insieme nn mi da problemi, e poi è strano che nn trova next, l'ho dichiarata chiaramente sopra.
    HELP ME!!!

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Come l'hai scritto? Dovrebbe essere

    Elemento * Elemento::getNext()
    {
    return next;
    }
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    Utente di HTML.it
    Registrato dal
    Apr 2009
    Messaggi
    59
    Ciao!!!

    Quando definisci un metodo di una classe la sintassi da seguire è la seguente:

    codice:
    tipoRestituito NomeClasse::NomeFunzione(parametri...)
    {
        //Corpo della funzione
    }
    nel tuo caso hai dimenticato di specificare "NomeClasse::" dove :: è l'operatore di risoluzione dello scope...

    PS: Oregon mi ha anticipato... Avrai postato mentre stavo scrivendo...

  4. #4
    Utente di HTML.it
    Registrato dal
    Apr 2013
    Messaggi
    8
    Grazie infinite siete stati davvero tempestivi e cordiali. Sono alle prime armi e ogni tanto faccio stupidate eheh^^ , ero andato in confusione non considerando il tipo Elemento come tale.

    Grazie ancora!!!!!!!!

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.