名称查找`a'改为新的ISO`为'作用域

时间:2015-05-27 17:09:38

标签: 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;
          }
    }   
}

2 个答案:

答案 0 :(得分:3)

当你在for循环中放置一个变量时,它只在for循环中定义。所以当你有:

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

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

你需要的是你的for循环用括号括起来以避免这种情况。因为这个原因,我建议总是使用大括号for循环,我的公司编码标准明确要求这样做以避免遇到你在这里遇到的确切问题。

答案 1 :(得分:2)

我想你在第一个2015-05-27 18:44:37.542 Typho[17693:8488013] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Only TyphoonDefinition object can be set as parent. But in method '(null)' object of class NSObject set as parent' 循环后忘记了开括号({)。