一、基本语法
namespace 命名空间名字 { }
注意事项:在定义命名空间时,结束不要加分号,示例如下:
namespace model1 { int i;//当前变量i只对命名空间model1可见,它的作用域被限定在model1 int j; } namesapce model2 { int i;//当前变量i只对命名空间model2可见,它的作用域被限定在model2 }
由于使用命名空间后,变量的作用域被限定,所以在使用变量时,就需要通过特定方式来完成。需要用到“::”操作符,“::”操作符是域解析操作符。例如:
model1::i = 1; model2::i = 2;
除了直接使用域解析操作符,还可以采用using声明(using declaration),例如:
using model1::i; i= 0; //使用model1定义的变量i model2::i= 10; //使用model2定义的变量i
二、命名空间成员使用方法总结
方法一 :命名空间名::成员 比如:spaceA::a;
使用using 可以使得命名空间中的成员暴露外部 ,以致可以使用该成员
方法二: using 命名空间名::成员 ----> 把指定的成员暴露给外部
比如:using spaceA::a;
方法三: using namespace 命名空间名 —> 将其所有成员暴露给外部
比如: using namespace spaceA;
三、命名空间嵌套
namespace 命名空间1 { int a; namespace 命名空间2 { int a; } }