Вы создаете массив шашек для представления отдельных шашек, принадлежащих каждой стороне. Шашки требуют, чтобы вы указали, на какой стороне находится шашка и какая она есть.
Зачем вам нужно знать, какой именно чекер? Если игрок вышел из комнаты, и кто-то поменял его шашки, заметит ли он?
Вы можете передать один аргумент конструктора, используя синтаксис массива следующим образом:
enum Side { White, Black };
class Checker
{
Side side ;
public:
Checker ( Side side ) : side(side) {
}
};
int main()
{
Checker white[12] = { White, White, White, White, White, White, White, White, White, White, White, White, };
Checker black[12] = { Black, Black, Black, Black, Black, Black, Black, Black, Black, Black, Black, Black, };
Checker* both[2] = { white, black };
return 0;
}
Несколько аргументов требуют конструктора копирования и будут выглядеть следующим образом:
Checker white[12] = { Checker(White,0), Checker(White,1) ...
Но я бы, как правило, просто добавил шашки на доску, используя вместо этого несколько объектов-шашек, представляющих Белую, Черную, Белую Королеву и Черную Королеву, если только нет очень веской причины для отслеживания личности.