我正在尝试解决我在 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/