c++ - `a' 的名称查找更改为新的 ISO `for' 范围

标签 c++ for-loop

我正在尝试解决我在 C++ 中遇到的这个错误。我在 StackOverflow 上看过类似的问题,但我似乎找不到我的特定解决方案的错误。我不知道为什么它不起作用,据我所知,嵌套的 for 循环以这种方式工作得很好。如果您有解决方案,请告诉我。

注意:这只是一个代码片段。所有变量都在上面定义。 我在第 7 行收到错误。

这是准确的错误信息:

50 C:\Users\ryang\Desktop\check install\Untitled1.cpp name lookup of `a' changed for new ISO `for' scoping

代码:

for(int a = 0; a < 500; a ++)
    assets[a][0] = temp + temp2;
    for(int b = 1; b < 6; b ++)
    {
          userAssets >> temp >> temp2;
          if(temp == "CorporateIT")
                  assets[a][b] = temp2;
          else
          {
              numWorkstations[a] = b;
              break;
          }
    }   
}

最佳答案

当您将变量放入 for 循环时,它仅在该 for 循环内定义。所以当你有:

for(int a = 0; a < 500; a ++)
    assets[a][0] = temp + temp2;

for 循环在此处的分号处结束,因此变量 a 现在不在范围内。

您需要用大括号括起您的 for 循环以避免这种情况。出于这个原因,我建议始终在 for 循环周围使用大括号,我的公司编码标准明确要求这样做,以避免遇到您在这里遇到的确切问题。

关于c++ - `a' 的名称查找更改为新的 ISO `for' 范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30488995/

相关文章:

c++ - 我怎样才能找到拷贝的来源?

c++ - 查找二维数组C++中每一行的最大值

java - 在同一行中循环不同的结束条件?

java - 无法使用for循环在java中初始化二维数组

c++ - 为什么 C++ 允许将整数分配给字符串?

c++ - 更改删除顺序以删除变量之前的指针

c++ - C++ 代码中的大负输出

for-loop - 当您使用范围 channel 中断for语句时会发生什么

javascript - Angular JS - ng-repeat 和循环条件

javascript - 在 Javascript 中使用 For 循环向后迭代