Пошаговое руководство. Отладка проекта (C++)
В этом пошаговом руководстве рассматривается изменение программы для устранения проблемы, обнаруженной при проверке проекта.
Необходимые компоненты
Это пошаговое руководство предполагает знание основ языка C++.
В нем также предполагается, что вы выполнили инструкции из предыдущих руководств, перечисленных в статье Использование интегрированной среды разработки Visual Studio для разработки приложений для настольных систем на языке C++.
Исправление программы с ошибкой
Чтобы узнать, что происходит при уничтожении объекта
Cardgame
, просмотрите деструктор классаCardgame
.В строке меню выберите Вид>Представление классов.
В окне Представление классов разверните дерево проекта Game и выберите класс Cardgame для отображения его членов и методов.
Откройте контекстное меню для деструктора ~Cardgame(void) и выберите Перейти к определению.
Чтобы уменьшить
totalParticipants
при завершении Cardgame, добавьте приведенный ниже код между открывающей и закрывающей фигурными скобками деструктораCardgame::~Cardgame
.totalParticipants -= players; cout << players << " players have finished their game. There are now " << totalParticipants << " players in total." << endl;
После изменений файл Cardgame.cpp должен содержать примерно такой код:
#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; }
В строке меню последовательно выберите Сборка>Собрать решение.
После завершения сборки запустите ее в режиме отладки, выбрав Отладка>Начать отладку в строке меню или нажав клавишу F5. Программа останавливается в первой точке останова.
Для пошагового выполнения программы в строке меню выберите Отладка>Шаг с обходом или нажмите клавишу F10.
Обратите внимание, что после каждого выполнения конструктора
Cardgame
значениеtotalParticipants
увеличивается. Когда функцияPlayGames
возвращает значение, так как каждый экземплярCardgame
выходит за пределы области и удаляется (и вызывается деструктор), значениеtotalParticipants
уменьшается. Непосредственно перед выполнением оператораreturn
значениеtotalParticipants
равно нулю.Продолжайте пошаговое выполнение программы до ее завершения или позвольте ей выполняться, выбрав Отладка>Выполнить в строке меню или нажав клавишу F5.
Next Steps
Предыдущий: пошаговое руководство. Тестирование проекта (C++)
Далее: пошаговое руководство. Развертывание программы (C++)