namespace { int a = 10; } int a = 20; cout << ::a <<endl; //不会报错,如果自由函变量也是在匿名空间中,则应该报错 cout<<a << endl ; //报错ambigous,如果自由变量不在匿名空间中,为什么会报错?
收起
建议你去查一下那个单词的意思;这个单词的意思是二义性的意思,也就是说,在你的匿名空间和全局空间都有一个a,但是你却没有指明空间名字, 导致计算机没法确定到底是哪个a;你第一个之所以不会报错就是因为你在前面加了空间名字
报告相同问题?