关于利用::来防止一些奇怪的编译错误
  • 板块灌水区
  • 楼主YCSluogu
  • 当前回复8
  • 已保存回复8
  • 发布时间2022/8/3 08:19
  • 上次更新2023/10/27 17:17:11
查看原帖
关于利用::来防止一些奇怪的编译错误
311721
YCSluogu楼主2022/8/3 08:19

拿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

原因是::会指明使用的是全局变量。

2022/8/3 08:19
加载中...