using 声明
如下代码,会报错:
二义性:(就近原则,会使用定义的局部变量),不知道用声明的,还是用就近原则的局部变量
using 编译指令:
仅打开房间,编译成功,打印使用就近原则(就近原则,会使用定义的局部变量)(打开了房间,但没有说非要用,一种不好的用法,虽然可以编译通过(会使用就近原则))
打开多个房间时,也要避免二义性问题;不知道使用哪个房间的了;
:: 作用域运算符
using namespace std; //系统提供的
1. 全局作用域 直接加 :: (eg: 定义局部变量a和全局变量a 在函数中cout<<::a<<endl; 则,调用的是全局变量a;否则使用就近原则,调用局部变量)
namespace命名空间,用来解决命名冲突的问题
1. 命令空间 , 可以放函数、变量、结构体、类
2. 命令空间 必须定义在全局作用域下
3. 命名空间可以嵌套命名空间
4.命令空间 是开放的,可以随时往原先的命名空间里面添加内容(定义多个同名的命名空间,会自动合并)
5. 无名、匿名命名空间(则,空间内的定义相当于 static,只能在当前文件内使用)
6.命令空间可以起别名
使用:
命名空间嵌套
4.命令空间 是开放的,可以随时往原先的命名空间里面添加内容(定义多个同名的命名空间,会自动合并)