所谓命名空间,实际上就是一个由程序员命名的内存区域,程序员可以根据需要指定一些有名字的空间域,把一些全局实体分别放在各个命名空间中,从而将其与其它的全局变量分开。
例如:
namespace dog; //定义空间名为 dog { int a; double b; }在这里,namespace 是定义命名空间所必须写的关键字,dog是指定命名空间的名称,括号内则是命名空间中的成员,虽然在花括号内,但也是全局变量。
如果程序要使用这两个成员,就必须加上命名空间名和作用域分辨符“ :: ”,如dog::a,dog::b。 ————
为了方便理解,这里通过计算机文件夹目录的功能加以解释。
在计算机的目录中,虽然很多文件名一样,但由于存在于不同的文件夹内,因此在调用和使用的时候,并不会产生冲突。只需要在使用的时候,将文件夹目录,也就是文件路径表示清楚就可以了。这和命名空间其实就是一个道理,就是建立一个全局实体变量作用域,避免名字上的冲突。 ————
在使用的时候,我们可以在命名空间中指定变量,函数,结构体,类,模版等,也可以指定另一个命名空间(嵌套)。
例如:
*namespace dog1* *{ const int Gate = 0.66; double Pay; double tax() { return a×Gate; } namespace do { int Wolf; } }*在输出命名空间dog1中的成员数据时,可以采用以下方法:
cout << dog1::Gate << endl cout << dog1::Pay << endl cout << dog1::tax() <<endl cout << dog1::do::Wolf << endl————
这里的“using”其实就是命名空间的声明,在程序开头进行声明,在后续编程的时候,就不用反复使用“ std::cin ”,“ std::cout ”,“ std::endl ”了,而可以直接使用“ cin >> ”,“ cout << ” 和 “ << endl ”了。
例如:
输出一段文字:“Hello China!!!”
常规情况下,需要这样编辑语句:
std::cout << "Hello China !!!" << std::endl;声明命名空间以后,就可以这样:
cout << "Hello China!!!" << endl;好了,空间命名的大致内容就是这些,欢迎大家留言探讨!