正文

类型、变量与标准(7)

通过游戏编程实战教新手学C++编程 作者:(美)Michael Dawson


1.3  使用std名称空间

因为经常要用到std名称空间中的元素,在此介绍两种不同的可以直接使用这些元素的方法,这样就不必总是使用std::前缀。

1.3.1  Game Over 2.0程序简介

Game Over 2.0程序的运行结果和图1-2所示的原始Game Over程序一模一样,但是区别在于访问std名称空间中元素的方式。从Course Technology网站(www.courseptr.com/downloads)或本书合作网站(http://www.tupwk.com.cn/downpage)上可以下载到该程序的代码。程序位于Chapter 1文件夹中,文件名为game_over2.cpp。

// Game Over 2.0

// Demonstrates a using directive

#include <iostream>

using namespace std;

int main()

{

cout << "Game Over!" << endl;

return 0;

}

1.3.2  使用using指令

与Game Over程序一样,Game Over 2.0也以两行注释和用于输出的iostream头文件开始。但是接下来,我们看到了一行新的语句。

using namespace std;

using指令让我们直接获取std名称空间中元素的访问权。如果还是将名称空间比作区号,那么从上面语句开始,所有std名称空间中的元素就如同本地电话号码一样。也就是说,无须加上区号(std::前缀)就可以访问它们。

现在我们可以不加任何前缀就使用cout和endl。就目前而言,这似乎无足轻重。但如果要几十甚至上百次地引用这些对象,这就非常有用了。

1.3.3  Game Over 3.0程序简介

还有另外一种实现Game Over 2.0的方法:将文件配置成不必每次显式地使用std::前缀就可以访问cout和endl。这正是将要在Game Over 3.0程序中展示的方法,Game Over 3.0显示的文本和Game Over 2.0一模一样。从Course Technology网站(www.courseptr.com/downloads)或本书合作网站(http://www.tupwk.com.cn/downpage)上可以下载到该程序的代码。程序位于Chapter 1文件夹中,文件名为game_over3.cpp。

// Game Over 3.0

// Demonstrates using declarations

#include <iostream>

using std::cout;

using std::endl;

int main()

{

cout << "Game Over!" << endl;

return 0;

}

1.3.4  使用using声明

3.0版本的Game Over程序使用了两个using声明。

using std::cout;

using std::endl;

通过明确声明希望std名称空间中的哪些元素对程序本地化,可以像程序Game Over 2.0一样直接访问它们。虽然这样做与使用using指令比起来输入量要更多一些,但优势在于清晰地指明了计划使用的名称空间中的元素。另外,这不会将无意使用的元素本地化。


上一章目录下一章

Copyright © 读书网 www.dushu.com 2005-2020, All Rights Reserved.
鄂ICP备15019699号 鄂公网安备 42010302001612号