Wskazówki: debugowanie projektu (C++)
W tym przewodniku zmodyfikujesz program, aby rozwiązać problem znaleziony podczas testowania projektu.
Wymagania wstępne
W tym przewodniku założono, że rozumiesz podstawy języka C++.
Przyjęto również założenie, że zostały wykonane wcześniejsze powiązane przewodniki wymienione w temacie Using the Visual Studio IDE for C++ Desktop Development (Korzystanie ze środowiska IDE programu Visual Studio dla języka C++).
Aby naprawić program, który zawiera usterkę
Aby zobaczyć, co ma miejsce w przypadku
Cardgame
zniszczenia obiektu, wyświetl destruktor klasyCardgame
.Na pasku menu wybierz pozycję Wyświetl>widok klasy.
W oknie Widok klasy rozwiń drzewo projektu Game i wybierz klasę Cardgame, aby wyświetlić składowe i metody klasy.
Otwórz menu skrótów dla destruktora ~Cardgame(void), a następnie wybierz pozycję Przejdź do definicji.
Aby zmniejszyć
totalParticipants
czas zakończenia gry Cardgame, dodaj następujący kod między nawiasamiCardgame::~Cardgame
klamrowymi otwierającą i zamykającą destruktora.totalParticipants -= players; cout << players << " players have finished their game. There are now " << totalParticipants << " players in total." << endl;
Plik Cardgame.cpp powinien przypominać poniższy kod po jego zmianie:
#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; }
Na pasku menu wybierz pozycję Kompiluj rozwiązanie kompilacji>.
Po zakończeniu kompilacji uruchom ją w trybie debugowania, wybierając pozycję Debuguj>Rozpocznij debugowanie na pasku menu lub wybierając F5. Program wstrzymuje się w pierwszym punkcie przerwania.
Aby przejść przez program, na pasku menu wybierz pozycję Debuguj>krok po kroku lub wybierz F10.
Zwróć uwagę, że po wykonaniu każdego
Cardgame
konstruktoratotalParticipants
wartość zwiększa się.PlayGames
Gdy funkcja zwraca wartość , ponieważ każdeCardgame
wystąpienie wykracza poza zakres i jest usuwane (a destruktor jest wywoływany),totalParticipants
zmniejsza się. Tuż przed wykonaniemtotalParticipants
instrukcjireturn
równa się 0.Kontynuuj przechodzenie przez program do momentu zakończenia działania lub pozwól mu uruchomić, wybierając pozycję Debuguj>uruchom na pasku menu lub wybierając F5 .
Następne kroki
Poprzedni: Przewodnik: testowanie projektu (C++)
Dalej: Przewodnik: wdrażanie programu (C++)