我知道const,创建后无法更改。但是我想知道是否有一种方法可以声明只设置一次的变量,此后不能覆盖。
在我的代码中,我想避免使用bool
变量,该变量一旦设置为nFirst
,就无法设置为nIdx
的新值,从而避免了nIdx
变量。
我的代码:
int nFirst = 0;
int nIdx = 0;
bool bFound = false;
BOOST_FOREACH(Foo* pFoo, aArray)
{
if (pFoo!= NULL)
{
pFoo->DoSmth();
if (!bFound)
{
nFirst= nIdx;
bFound = true;
}
}
nIdx++;
}
最佳答案
您可以检查nFirst
本身,因为它不会设置为负数。如:
int nFirst = -1;
int nIdx = 0;
BOOST_FOREACH(Foo* pFoo, aArray)
{
if (pFoo != NULL)
{
pFoo->DoSmth();
if (nFirst == -1)
{
nFirst = nIdx;
}
}
nIdx++;
}