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

あなたのコメントとして、countCheckクラスの固定メンバーではなく、Checker object1;常に新しいオブジェクトを作成し、カウントをに初期化します0。count staticを作成すると、getCount()ローリングが作成されます。

class Checker
{
   static int count;
};

Checker.cppでカウントを初期化します

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