我知道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++;
}

09-07 23:54