计数器函数不基于以前返回的值构建

Counter functions does not build upon previously returned value

本文关键字:返回 构建 函数 计数器      更新时间:2023-10-16

第一个 if 语句输入可疑。该对象调用 getCount() 函数,但递增的值不是以前的计数,而是 0。我尝试在函数中使用计数 += 计数。

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(我的猜测)。

您只需将Checker object1移出循环; 正在创建一个新实例,每次传递的计数为零。

正如您的评论,count不是 Check 类的静态成员,Checker object1;总是创建一个新对象并将 count 初始化为 0 . 静态计数应该使您的getCount()滚动。

class Checker
{
   static int count;
};

在检查器中初始化计数.cpp

int Check::count = 0;