蓝月心语 2017-08-04 06:25 采纳率: 62.5%
浏览 1267
已结题

c++ 匿名空间与默认的空间是什么关系

  • 我想知道的是,匿名空间与默认的全局空间是什么关系?
  • 自由函数和变量是否是在匿名空间中?如果是,下面代码原因为何? 如下代码:
namespace
{
    int a = 10;
}

int  a = 20;

cout << ::a <<endl; //不会报错,如果自由函变量也是在匿名空间中,则应该报错
cout<<a << endl ; //报错ambigous,如果自由变量不在匿名空间中,为什么会报错?

  • 写回答

2条回答 默认 最新

  • jalen_zh 领域专家: 算法与数据结构技术领域 2017-08-04 08:40
    关注

    建议你去查一下那个单词的意思;这个单词的意思是二义性的意思,也就是说,在你的匿名空间和全局空间都有一个a,但是你却没有指明空间名字,
    导致计算机没法确定到底是哪个a;你第一个之所以不会报错就是因为你在前面加了空间名字

    评论

报告相同问题?