Pagina 2 di 3 primaprima 1 2 3 ultimoultimo
Visualizzazione dei risultati da 11 a 20 su 25

Hybrid View

  1. #1
    Ottimo, grazie!
    Per testarlo ho scritto questo codice:
    codice:
    int main () {
        Pezzo *pino=new Cavallo(NERO);
        cout << pino->getTipo();
    }
    però quando lo eseguo mi crasha e dice: pure virtual method called.
    Come se andasse ad eseguire il metodo getTipo della classe Pezzo anzichè della classe cavallo...cos'ho combinato?

  2. #2
    Vedere il codice.
    Amaro C++, il gusto pieno dell'undefined behavior.

  3. #3
    pezzo.hh:
    codice:
    class Pezzo {
    
     protected:
        Colore _colore;
    
     public:
        Pezzo (Colore colore);
        virtual ~Pezzo ();
        Colore getColore ();
        virtual char getTipo () =0;
    
    };
    cavallo.hh:
    codice:
    class Cavallo : public Pezzo {
    
    public:
    
        Cavallo (Colore colore);
        ~Cavallo ();
        char getTipo ();
    
    };

  4. #4
    Serve che alleghi anche i rispettivi file .cc?

  5. #5
    Utente di HTML.it L'avatar di Scara95
    Registrato dal
    Jul 2009
    residenza
    Zimella (VR)
    Messaggi
    2,589
    Posteresti tutto il codice e anche i comandi di compilazione?
    "Quid enim est, quod contra vim sine vi fieri possit?" - Cicerone, Ad Familiares

  6. #6
    EDIT: ho ricompilato e funziona tutto.
    Ho come l'impressione che in precedenza non avesse ricompilato tutto il progetto ma solo una parte, è possibile? Eppure uso un makefile.
    Ultima modifica di starcraftworld; 19-03-2015 a 23:52

  7. #7
    Forse non avevi aggiunto alle dipendenze dei .cpp i .h?
    Amaro C++, il gusto pieno dell'undefined behavior.

  8. #8
    No no, non ho modificato né i sorgenti né il makefile. Ho semplicemente eliminato tutti i file .o e ricompilato

  9. #9
    Quote Originariamente inviata da starcraftworld Visualizza il messaggio
    No no, non ho modificato né i sorgenti né il makefile. Ho semplicemente eliminato tutti i file .o e ricompilato
    No, intendevo dire che forse nel tuo makefile non hai specificato le dipendenze dei .cpp dai .h che includono, per cui, se hai modificato solo i .h, non ha ricompilato niente, e quindi sembrava non funzionare.
    Amaro C++, il gusto pieno dell'undefined behavior.

  10. #10
    Effettivamente le istruzioni del mio makefile sono del tipo:
    codice:
    Cavallo.o : Cavallo.cc
        g++ -Wall -c Cavallo.cc
    dovrei invece farle diventare del tipo:
    codice:
    Cavallo.o : Cavallo.hh Cavallo.cc
        g++ -Wall -c Cavallo.cc
    Mi stai dicendo questo?

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 © 2026 vBulletin Solutions, Inc. All rights reserved.