第一个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(我的猜测)。
答案 0 :(得分:3)
您只需将Checker object1
移到循环之外;正如代码所代表的那样,每次传递都会创建一个新的实例,其数量为零。
答案 1 :(得分:0)
作为评论,count
不是Check类的staic成员,Checker object1;
始终创建一个新对象并将计数初始化为0
。 make count static应该使你的getCount()
滚动。
class Checker
{
static int count;
};
在Checker.cpp初始化计数
int Check::count = 0;