拿next举例子。
如果你在 全局 声明了一个变量:
int next;
是不会报错的。但是如果你想在局部使用这个变量:
cout << next;
那么就会报错。
一个替代方法是:
cout << ::next;
这样不会报错。
其中,两个:开头的变量被显示指明是全局变量,这样编译器不会异脸懵逼。同时,如果你觉得::看起来太丑了,那么可以这么做:
using ::next;
cout << next;
同样,对于如下示例代码:
int a = 10;
int main() {
int a = 5;
cout << a << endl;
cout << ::a << endl;
}
的输出其实为
5
10
原因是::会指明使用的是全局变量。