Я делаю для своего колледжа работу на 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();
}
}
Я действительно хотел бы объяснить, что случилось здесь.
Спасибо!
Не могли бы вы создать [минимальный компилируемый образец] (HTTP://stackoverflow.com/help/mcve) вашего кода, который воспроизводит поведение, которое вы описываете? –
@WillBriggs Эй, спасибо за ваш ответ, все то, что вы сказали, неуместно, потому что это уже объявлено в коде, но я не скопировал его здесь. – unix14
@ user1978011 Извините, я подумал, что могу получить помощь и понимаю, что сам код намного больше, и я сделал 90% работы, я просто хочу помочь для этой вещи P2.addscore. – unix14