2015-05-06 6 views
-4

Я делаю для своего колледжа работу на C++, мой код основан на 2 классах, NumSet и Game. данные являются частными.C++ - многоклассы и частные члены данных

class NumSet 
{ 
    int arr[5];  //Cards 
    int Score; 
} 

class Game 
{ 
    NumSet P1, P2;    //Player 1 , And Player 2 
    int OpenCard;    //For The Card in The center 
} 

для добавления баллов к P1 \ P2 из метода внутри Game Я создал этот метод:

void NumSet::Addscore() 
{ 
    ++this->Score; 
} 

и этот другой метод:

void NumSet::PrintScore() 
{ 
    cout << this->Score << endl; 
} 

До сих пор это все выглядит хорошо, но почему-то , когда я называю метод Addscore:

P2.Addscore(); 

это повышает его значение от 0 до 2 ..

NumSet::NumSet()  //C'tor 
{ 
    for (int i = 0; i < STARTCARDS; i++) 
     arr[i] = NULL; 
    this->Sort();  //BubbleSort 
    Score = 0; 
} 

void Game::ChangeCards() 
{ 
    if (x1 > x2)  //Player 1 is Stronger 
     P1.Addscore(); 

    else if (x2 > x1) //Player 2 is Stronger 
     P2.Addscore(); 

    else    //Both Cards Are Equal 
    {    //Checkin For The Lower Max Num 
     int max1 = P1.Max();  //Max returns maximum num in arr 
     int max2 = P2.Max(); 
     if (max1 < max2) 
      P1.Addscore(); 
     else if (max2 < max1) 
      P2.Addscore(); 
    } 
} 

Я действительно хотел бы объяснить, что случилось здесь.

Спасибо!

+2

Не могли бы вы создать [минимальный компилируемый образец] (HTTP://stackoverflow.com/help/mcve) вашего кода, который воспроизводит поведение, которое вы описываете? –

+0

@WillBriggs Эй, спасибо за ваш ответ, все то, что вы сказали, неуместно, потому что это уже объявлено в коде, но я не скопировал его здесь. – unix14

+0

@ user1978011 Извините, я подумал, что могу получить помощь и понимаю, что сам код намного больше, и я сделал 90% работы, я просто хочу помочь для этой вещи P2.addscore. – unix14

ответ

0

ничего не кажется неправильным здесь .. просто убедитесь, что - 1) Оценка инициализируется 0 2) Не делает любое назначение или приращение по ошибке

+0

Загружено всего кода – unix14

+0

@ unix14 _ "Загружено всего кода -" _ Вы этого не сделали., вы связали его, что даже хуже, чем исходное сообщение. Создайте [MCVE] (http: // stackoverflow .com/help/mcve), как уже упоминалось! –

Смежные вопросы