上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人
2.5 调试项目
在本节中,我们将修改程序以修复在测试项目时发现的问题。
若要明白在Cardgame对象销毁时会发生什么,请查看Cardgame类的析构函数。
在“视图”菜单上,单击“类视图”,或者单击“解决方案资源管理器”窗口中的“类视图”选项卡。展开“game”项目树并单击“Cardgame”类。下方的区域显示类的成员和方法。
右键单击“~Cardgame(void)”析构函数并单击“转到定义”。
要在Cardgame终止时减少totalparticipants,请在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; Cardgame::Cardgame(int p) { players = p; totalparticipants += p; cout << p << " players have started a new game. There are now " << totalparticipants << " players in total." << endl; } Cardgame::~Cardgame(void) { totalparticipants -= players; cout << players << " players have finished their game. There are now " << totalparticipants << " players in total." << endl; }
在“生成”菜单上,单击“生成解决方案”。
在“调试”菜单上,单击“运行”,或按F5键,以“调试”模式运行该程序。程序将在第一个断点处暂停。
在“调试”菜单上单击“逐过程”或者按F10键逐句通过程序。
注意,执行每个Cardgame构造函数后,totalparticipants的值会增大。而在删除每个指针(并调用析构函数)后,totalparticipants的值会减小。
单步执行至程序的最后一行。恰好在执行return语句之前,totalparticipants等于0。继续逐句通过程序,直到程序退出;或者在“调试”菜单上单击“运行”或按F5键,允许程序继续运行,直到退出。