在实战中成长:C++开发之路
上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键,允许程序继续运行,直到退出。