为何命名的空间与未命名的空间,在可见性上有区别呢?
如果指定名称,如 name1,则在main()函数时,必须用 using namespace name1; 才行。
但是对于未指定名称的命名空间,可以直接使用。未指定名称的命名空间,意义何在呢?什么情况下要用到呢?
#include <iostream>namespace name1
{
int i=99;
}namespace 
{
double d=99.99;
}
main()
{
using namespace std;
using namespace name1;
i=888;
cout << i << endl;
cout << d << endl;
return 0;
}

解决方案 »

  1.   

    名字空间是解决 命名冲突问题的。
    当然可见性有差别了
      

  2.   

    语言的规定。所有的命名空间内部都可以访问到匿名空间内的东西。(你可以把匿名空间当成所有其他空间的共同的根,子空间总可以访问上一级空间,如果一定要有理由的话。)
      

  3.   

    就相当于把程序放入一个个不同的袋中,防止命名冲突,如此而已
      

  4.   

    如果这样,那匿名空间,与不放在任何空间中不是完全一样了吗?
    我直接放在函数外就可以了,为何要放在一个没有名称的空间中呢?
      

  5.   

    匿名空间里面的东西是内部链接的。全局的则是外部链接。