在实战中成长:C++开发之路
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

2.2 项目和解决方案

在Visual Studio中,可以将你的工作组织为项目和解决方案。一个解决方案可以包含多个项目,如一个DLL和一个引用该DLL的可执行文件。

2.2.1 使用项目和解决方案

用Visual Studio编写Visual C++程序的第一步是选择项目的类型。对于每种项目类型,Visual Studio设置编译器并生成起始代码。

在“文件”菜单中,指向“新建”,然后选择“项目…”。

在“项目类型”区域中,单击“Win32”。然后,在“Visual Studio已安装的模板”窗格中单击“Win32控制台应用程序”。

键入项目名称。在此示例中,我们将使用“游戏”。

创建新项目时,Visual Studio将该项目放入一个解决方案。请接受解决方案的默认名称,该名称与项目的名称相同。

你可以接受默认位置、键入一个不同的位置或者浏览到要保存项目的目录。

按“确定”按钮启动“Win32应用程序向导”。

在“Win32应用程序向导”对话框的“概述”页中,单击“下一步”按钮。

在“应用程序类型”下的“应用程序设置”页,选择“控制台应用程序”。选择“其他选项”下的“空项目”设置并单击“完成”。

现在,得到了一个没有源代码文件的项目。

2.2.2 使用解决方案资源管理器

通过解决方案资源管理器,你可以轻松使用解决方案中的文件和其他资源。

此处你要向项目添加一个类,Visual Studio会将.h和.cpp文件添加到项目中。然后,为测试类的主程序添加一个新的源代码文件。

如果“解决方案资源管理器”窗口不可见,请单击“视图”菜单上的“解决方案资源管理器”。

右键单击“解决方案资源管理器”中的“头文件”文件夹并选择“添加”,然后单击“类”。

在“Visual C++”类别中,单击“Visual Studio已安装的模板”区域中的“C++”→“C++类”,单击“添加”按钮。

在“一般C++ 类向导”中,键入“Cardgame”作为“类名”,并接受默认的文件名,设置完成后单击“完成”按钮。

对编辑区域中显示的Cardgame.h文件进行下列更改:

● 在类定义的左大括号之后添加两个私有数据成员:

        int players;
        static int totalparticipants;

● 添加一个采用int类型参数的公共构造函数原型:

Cardgame(int p);

● 删除生成的默认构造函数。默认构造函数是没有参数的构造函数。默认构造函数类似于如下形式:

Cardgame(void);

进行上述更改后,Cardgame.h文件应如下所示:

        #pragma once
        class Cardgame
        {
              int players;
              static int totalparticipants;
          public:
              Cardgame(int p);
              ~Cardgame(void);
        };

#pragma once行指明编译器只包含该文件一次。

双击“源文件”文件夹中的“Cardgame.cpp”,以将其打开进行编辑。

为采用一个int参数的构造函数添加代码:

        Cardgame::Cardgame(int p)
        {
          players = p;
          totalparticipants += p;
          cout << p << " players have started a new game.  There are now "
                << totalparticipants << " players in total." << endl;
        }

开始键入pl或to时,可以按“Ctrl+空格键”,自动完成功能将完成键入players或totalparticipants的任务。

删除自动生成的默认构造函数:

Cardgame::Cardgame(void);

进行上述更改后,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)
        {
        }

2.2.3 添加源文件

此处将为测试类的主程序添加一个源代码文件。

在“项目”菜单上,单击“添加新项”。

也可以使用“解决方案资源管理器”来向项目添加新文件,方法是右键单击“解决方案资源管理器”中的“源文件”文件夹,指向“添加”,然后选择“新建项”。

在“Visual C++”区域中,选择“代码”。然后单击“C++文件(.cpp)”。

键入“testgames”作为“名称”,然后单击“添加”按钮。

在testgames.cpp编辑窗口中键入以下代码:

        #include "Cardgame.h"
        int Cardgame::totalparticipants = 0;
        int main()
        {
            Cardgame *bridge = 0;
            Cardgame *blackjack = 0;
            Cardgame *solitaire = 0;
            Cardgame *poker = 0;
            bridge = new Cardgame(4);
            blackjack = new Cardgame(8);
            solitaire = new Cardgame(1);
            delete blackjack;
            delete bridge;
            poker = new Cardgame(5);
            delete solitaire;
            delete poker;
            return 0;
        }

在“生成”菜单上,单击“生成解决方案”。

在“输出”窗口中,应当看到生成的输出,它指示已编译项目,并且未发生错误。如果未看到,请将代码与该主题较早显示的代码进行比较。