9-3 名称空间

9.3 名称空间

特性:通过定义一种新的声明区域来创建命名的名称空间

作用:防止相同的名称起冲突

1.位置

可以是全局或是另一个名称空间中,不能在代码块里。

2.创建

使用namespace创建新的名称空间

namespace element{
int m;
int n;
}

3.注意

1.名称空间是开放的,即在创建了名称空间之后可以再次使用名称空间在内增加定义变量或函数与代码

namespace element{
int m;
int n;
}
//再次增加定义
namespace element{
int hello;
}

:这也意味着可以在库名称空间(例如std)中掺入私货

4.访问

1.域解析运算符::

例如:

Jack::pail=12.22;//更改
Jill::Hill mole;//创建一个Hill的结构体
Jack::fetch();//使用函数
2.using声明和using预编译指令

using声明:使namespace中特定标志符可用

using Jill::fetch;

using预编译指令:使整个namespace可用

using namespace Jill;

5.名称空间的嵌套

1.创建
namespace element{
namespace fire{
int flame;
...
}
}
2.使用
using namespace element::fire;//预编译指令
element::fire::flame=1;//更改数值

6.在名称空间中解除其他名称空间

例子:

namespace myth{
using Jill::fetch;
using namespace element;
}
//之后要访问fetch
Jill::fetch;
myth::fetch;//因为已经在myth中允许使用了