using指令: using namespace name;
using声明: using name:e;
using声明就像是在当前作用域中声明了一个变量名, 如果该作用域中已经存在了相同的变量名,则会编译错误。
using指令就像是使得在文件作用域中声明了该命名空间中的名字,但只有using指令所在的作用域可见, 别的作用域不可见。
using指令发生冲突时,是在名字被使用时发生的,若发生冲突的名字未被使用,则不会发生冲突。
例:
namespace test
{
int i;
}
void fun (void)
{
using test::i;
int i; // 错误
}
void fun (int )
{
using namespace test;
int i; // 正确,但隐藏了test::i
}