超级简单搞清楚名称空间的变量使用问题
首先搞清楚变量三种访问方式:
- 直接变量名访问
- 用解析运算符**(:: + 变量名)**访问
- 用名称空间限定变量名访问
使用名称空间的变量有两种方法:
- 使用using 编译指令 using namespace + 名称空间
- 使用using 声明 using 名称空间::变量名
使用这两种方法的时候,
using 编译指令 类似于 定义了一个全局变量,
using 声明 类似于 定义了一个局部变量,
即用来解释以下情况:
- 当自己定义了一个全局变量,又使用了一个同名的using 编译指令时,编译器会告诉你 有歧义。
- 自己定义了一个局部变量,然后又使用using 声明 ,编译器会让你修改变量名称,因为重复定义。
- 如果定义了一个全局变量,然后使用同名的 using 声明 ,using 声明的变量类似于局部变量,会将全局变量的隐藏。(反之会隐藏using 编译指