c++,命名空间namespace,using编译,using声明用法
命名空间namespace
命名空间起源:
因为项目增大导致命名冲突,使用厂商的类库时命名冲突,用户定义时命名冲突等统称为名称空间问题,c++提供了命名空间工具来方便控制名称的作用域,需要注意的是命名空间是用来控制名称标识符的作用域的。
了解命名空间前需要的知识前提:
声明区域:
可以在其中进行声明的区域,例如函数外声明的全局变量,其声明区域为所在文件,对于函数内声明的变量,其声明区域为其声明所在的代码块。
潜在作用域:
变量的潜在作用域从声明点开始,到其声明区域的结尾,故潜在作用域比声明区域小,因为变量需要在声明以后才能被调用。
变量并非在其潜在作用域中可见,它可能被另一个在嵌套声明区域中声明的同名变量隐藏,例如在函数声明的局部变量会将同一个文件中的全局变量隐藏,变量对程序而言可见的范围被称为作用域。
引入:
c++关于全局变量和局部变量的规则定义了一种名称空间层次,每个声明区域都可以声明名称,这些名称独立于在其他声明区域中声明的名称,在一个函数中声明的局部变量不会与在另一个函数中声明的局部变量发生冲突。
新引入的命名空间的特性:
c++通过定义一种新的声明区域来创建命名的命名空间,这样做的目的之一是提供一个声明名称的区域