Game::Game(int IDvalue, string NAMEvalue)
{
IDvalue = id;
NAMEvalue = name;
winner = " ";
}
Большинство из этих заданий задом наперед. Чтобы быть последовательным, последняя строка должна была быть
" " = winner;
Этот конструктор не инициализирует id
и name
; вместо этого он присваивает (мусорные) значения id
и name
параметрам IDvalue
и NAMEvalue
, которые являются локальными переменными в функции, поэтому они уничтожаются, когда возвращается конструктор, и никто не может видеть их измененные значения.
Fix:
Game::Game(int IDvalue, string NAMEvalue)
{
id = IDvalue;
name = NAMEvalue;
winner = " ";
}
Или лучше:
Game::Game(int IDvalue, string NAMEvalue)
: id(IDvalue)
, name(NAMEvalue)
, winner(" ")
{
}
Кстати, у ваших функций сеттера такая же проблема.