Procedura dettagliata: debug di un progetto (C++)

In questa procedura dettagliata si modifica il programma per risolvere il problema rilevato durante il test del progetto.

Prerequisiti

Per correggere un programma che presenta un bug

  1. Per conoscere cosa accade quando un oggetto Cardgame viene eliminato definitivamente, visualizzare il distruttore per la classe Cardgame.

    Sulla barra dei menu scegliere Visualizza>Visualizzazione classi.

    Nella finestra Visualizzazione classi espandere la struttura del progetto Game e selezionare la classe Cardgame per visualizzare i membri e i metodi della classe.

    Aprire il menu di scelta rapida per il distruttore ~Cardgame (void), quindi scegliere Vai a definizione.

  2. Per diminuire il valore totalParticipants al termine di un'istanza di Cardgame, aggiungere il codice seguente tra le parentesi graffe di apertura e chiusura del distruttore Cardgame::~Cardgame.

    totalParticipants -= players;
    cout << players << " players have finished their game.  There are now "
         << totalParticipants << " players in total." << endl;
    
  3. Dopo le modifiche, il file Cardgame.cpp risulta simile al codice seguente:

    #include "Cardgame.h"
    #include <iostream>
    
    using namespace std;
    
    int Cardgame::totalParticipants = 0;
    
    Cardgame::Cardgame(int players)
        : players(players)
    {
        totalParticipants += players;
        cout << players << " players have started a new game.  There are now "
             << totalParticipants << " players in total." << endl;
    }
    
    Cardgame::~Cardgame()
    {
        totalParticipants -= players;
        cout << players << " players have finished their game.  There are now "
             << totalParticipants << " players in total." << endl;
    }
    
  4. Nella barra dei menu scegliere Compila>Compila soluzione.

  5. Al termine della compilazione, eseguire il programma in modalità di debug scegliendo Debug>Avvia debug sulla barra dei menu oppure premendo F5. L'esecuzione del programma viene sospesa al primo punto di interruzione.

  6. Per eseguire il programma un'istruzione alla volta, sulla barra dei menu scegliere Debug>Esegui istruzione/routine o premere F10.

    Si noti che dopo l'esecuzione di ogni costruttore Cardgame, il valore di totalParticipants aumenta. Quando la funzione PlayGames restituisce un valore, poiché ogni istanza di Cardgame esce dall'ambito e viene eliminata (con conseguente chiamata del distruttore), il valore di totalParticipants diminuisce. Prima dell'esecuzione dell'istruzione return, totalParticipants è uguale a 0.

  7. Continuare a eseguire il programma un'istruzione alla volta fino al termine oppure scegliere Debug>Esegui sulla barra dei menu o premere F5 per consentirne l'esecuzione in sequenza.

Passaggi successivi

Precedente: Procedura dettagliata: Test di un progetto (C++)
Successiva: Procedura dettagliata: Distribuzione del programma (C++)

Vedi anche

Riferimenti al linguaggio C++
Progetti e sistemi di compilazione