命名空间的语法形式如下:
namespace 命名空间名{
命名空间内的各种声明(函数声明、类声明、…)
}
一个命名空间确定了一个命名空间作用域,凡是在该命名空间之内声明的、不属于前面所述各个作用域的标识符,都属于该命名空间作用域。在命名空间内部可以直接引用当前命名空间中声明的标识符,如果需要引用其他命名空间的标识符,需要使用下面的语法:
命名空间名::标识符名
例如:
namespace SomeNs{
class SomeClass{...};
};
引用类名SomeClass创建对象:
SomeNs::SomeClass obj1;
//声明一个SomeNs::SomeClass型的对象obj1
using语句:
using 命名空间名::标识符名;//当前作用域内使用指定标识符
using namespace 命名空间名;//当前作用域内使用命名空间内任意标识符
命名空间的嵌套例子:
namespace OuterNs{
namespace InnerNs{
class SomeClass{...};
}
}
引用其中的SomeClass类,需要使用OuterNs::InnerNs::SomeClass的语法形式,如:OuterNs::InnerNs::SomeClass obj1;