Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
In dit scenario wijzigt u het programma om het probleem op te lossen dat u hebt gevonden toen u het project testte.
Vereiste voorwaarden
In dit scenario wordt ervan uitgegaan dat u de basisprincipes van de C++-taal begrijpt.
Aangenomen wordt dat u de eerdere gerelateerde handleidingen hebt voltooid die worden vermeld in Visual Studio IDE voor C++ Desktop Development.
Een programma met een bug oplossen
Als u wilt zien wat er gebeurt wanneer een
Cardgameobject wordt vernietigd, bekijkt u de destructor voor deCardgameklasse.Kies op de menubalk Weergave>Klasseweergave.
Vouw in het venster Class View de structuur van het Game-project uit en selecteer de Cardgame-klasse om de klasseleden en methoden weer te geven.
Open het snelmenu voor de destructor ~Cardgame(void) en kies Ga naar definitie.
Om de
totalParticipantste verminderen wanneer een cardgame eindigt, voegt u de volgende code toe tussen de openings- en sluitingsaccolade van deCardgame::~Cardgamedestructor.totalParticipants -= players; cout << players << " players have finished their game. There are now " << totalParticipants << " players in total." << endl;Het Cardgame.cpp-bestand moet er ongeveer als volgt uitzien nadat u het hebt gewijzigd:
#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; }Kies Build>Oplossing bouwen in de menubalk.
Wanneer de build is voltooid, voert u deze uit in de foutopsporingsmodus door Foutopsporing> op de menubalk te kiezen of door de F5-toets te kiezen. Het programma wordt onderbroken op het eerste onderbrekingspunt.
Als u het programma wilt doorlopen, kiest u op de menubalk Debug>Step Over of kiest u de F10-toets .
Merk op dat nadat elke
Cardgameconstructor is uitgevoerd, de waarde vantotalParticipantstoeneemt. Wanneer dePlayGamesfunctie retourneert, valt elkCardgameexemplaar buiten het bereik en wordt verwijderd (en wordt de destructor aangeroepen), en neemttotalParticipantsaf. Net voordat dereturninstructie wordt uitgevoerd, staattotalParticipantsgelijk aan 0.Ga door met het doorlopen van het programma totdat het wordt afgesloten of laat het uitvoeren door Foutopsporing>uitvoeren te kiezen op de menubalk of door de F5-toets te kiezen.
Volgende stappen
Vorige:Walkthrough: Een project testen (C++)
Volgende:Walkthrough: Uw programma implementeren (C++)