演练:调试项目 (C++)

在本演练中,你将修改程序以修复在测试项目时发现的问题。

先决条件

修复含有 bug 的程序

  1. 若要查看销毁 Cardgame 对象时发生的情况,请查看 Cardgame 类的析构函数。

    在菜单栏上,选择“视图”>“类视图”。

    在“类视图”窗口中,展开“游戏”项目树并选择“Cardgame”类来显示类成员和方法 。

    打开“~Cardgame(void)”析构函数的快捷菜单,然后选择“转到定义” 。

  2. 若要在 Cardgame 终止时减少 totalParticipants,请在 Cardgame::~Cardgame 析构函数的左大括号和右大括号之间键入以下代码。

    totalParticipants -= players;
    cout << players << " players have finished their game.  There are now "
         << totalParticipants << " players in total." << endl;
    
  3. 在对 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;
    }
    
  4. 在菜单栏上,依次选择“生成”>“生成解决方案” 。

  5. 生成完成后,可以通过选择菜单栏上的“调试”>“启动调试”或选择 F5 键在调试模式下运行此解决方案。 程序在第一个断点处暂停程序。

  6. 若要逐步执行此程序,请在菜单栏上,选择“调试”>“逐过程执行”或选择 F10 键。

    请注意,执行每个 Cardgame 构造函数后,totalParticipants 的值会增大。 在 PlayGames 函数返回时,由于每个 Cardgame 实例都超出范围且被删除(并且调用析构函数),因此 totalParticipants 会减小。 在刚要执行 return 语句前,totalParticipants 等于 0。

  7. 继续逐步执行此程序直到其退出,或通过在菜单栏上选择“调试”>“运行”或选择 F5 键来使其运行。

后续步骤

上一篇:演练:测试项目 (C++)
下一篇:演练:部署程序 (C++)

另请参阅

C++ 语言参考
项目和生成系统