第一个 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;