【问题标题】:What does :: before array means in C++ explicitly in below code? [duplicate]:: before array 在下面的代码中显式地在 C++ 中意味着什么? [复制]
【发布时间】:2021-12-16 02:16:54
【问题描述】:

在下面的代码中,我无法理解数组 add[i] 之前的 :: 是什么意思。谁能给我一个大致的概念,如果在数组数据结构之前添加,这在 c++ 中意味着什么?(这是通用的仅供参考的代码)

#define FOR(ii,aa,bb) for(int ii=aa;ii<=bb;ii++)

    FOR(i, 1, n) {
        scanf("%d %d", &x, &y);
        double add = dist(Tx, Ty, x, y);
        all += add * 2;
        suff[i] = pre[i] = dist(Cx, Cy, x, y) - add;
        ::add[i] = dist(Kx, Ky, x, y) - add;
    }

【问题讨论】:

  • 您使用的FOR 宏是什么?如果你要编写真正的、惯用的 C++(而不是基本上用 C++ 编写 C),你不应该使用这样的宏。
  • :: 表示::add 驻留在全局范围内。
  • :: 在符号前表示全局命名空间,因此它指的是与上面声明的不同的add
  • 伙计们,FOR 仅供参考,现在只添加了定义语句,我认为在这个问题的参考中甚至不重要.....因为我想要一般的和不想要的发布整个代码

标签: c++ arrays


【解决方案1】:

这意味着它引用了在全局命名空间中定义的数组add,而不是在FOR宏后面的代码块中定义的局部变量add

通常你只需给局部变量一个不同的名字。而且大多数时候你也不会有一个全局可变变量。

【讨论】:

  • 明白,谢谢
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-06-05
  • 1970-01-01
  • 1970-01-01
  • 2012-05-02
  • 2020-09-24
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多