1

第一个 if 语句作为怀疑进入。该对象调用 getCount() 函数,但增加的值不是先前的计数,而是 0。我尝试在函数中使用 Count += Count。

int main(){
    .........     
    int displayCount;
    while(!inputfile.eof()) 
    {

        inputfile.get(letter);

            Checker object1;
            if (object1.isValid(letter)))
            {
                displayCount = object1.getCount();
            }
    }
    cout << displayCount;
   .
   .
   .
Checker::Checker() :
    m_Valid(false),
    count(0)
{
}


int Checker::getCount()
{

    if(m_Valid)
    {
        count ++;
    }

    return count;
}

我的倾向是,一旦从函数返回值,那就是它。它将不再保持以前的值 bc (我的猜测)。

4

2 回答 2

3

您只需要移出Checker object1循环即可;正如代码所示,正在创建一个新实例,每次通过的计数为零。

于 2012-12-19T04:50:55.683 回答
0

正如您的评论,count不是 Check 类的 staic 成员,Checker object1;总是创建一个新对象并将 count 初始化为0。make count static 应该让你getCount()滚动。

class Checker
{
   static int count;
};

在 Checker.cpp 中初始化计数

int Check::count = 0;
于 2012-12-19T04:45:38.857 回答