namespace一般理解为命名空间或者名字空间,在C++程序中,一个作用域里同一个变量只允许有一个定义,但是随着程序规模的扩大,变量越来越多,尤其在不同程序员的代码组合或者相互调用时很容易出现非局部变量的命名冲突,导致变量重定义错误。
引入命名空间namespace,将全局作用域进行逻辑上的细化,将变量、函数等聚集到一个名字空间这样一个逻辑作用域下,很好地解决了命名冲突的问题。
声明命名空间的语法如下:
namespace identifier
{
named_entities
}
其中identifier是任何有效的标识符,named_entities是一组包含在命名空间中的变量,类型和函数。 例如:
namespace myNamespace
{
int a, b;
}
在这个例子中,a和b是声明在命名空间myNameSpace下的两个变量。
命名空间内的变量在内部可直接访问,但在命名空间外部访问时则需要使用到操作符::,如上述例子中变量a、b在外部的访问方式为: