Здесь есть две проблемы, но ни одна из них не имеет ничего общего с rand()
.
Несколько объявлений
SHIRT_COLOR shirt = WHITE;
SHIRT_COLOR shirt = BLACK;
SHIRT_COLOR shirt = RED;
SHIRT_COLOR shirt = GREEN;
Здесь вы создаете четыре переменные с одинаковыми имя. Непонятно, почему вы это делаете.
Просто сделайте одну переменную для выбранного вами цвета рубашки:
SHIRT_COLOR shirt = static_cast<SHIRT_COLOR>(value);
Вывод
C ++ не знает, как печатать ваши перечисления, из коробки, и ваша программа не знает об этих именах переменных / констант; они существуют только в вашем исходном коде.
Предположительно, вы получаете сообщение об ошибке компиляции в этой строке:
cout << "Random Shirt Color: " << shirt;
Вам нужно будет отсортировать это самостоятельно, либо с помощью std::map
, или switch
, или даже просто серия if
/ else if
с учетом соответствующей шкалы.
Кроме этого, ваш подход в порядке.
static_cast
имеет смысл.
Относительно srand()
, достаточно справедливо, если вам придется пропустить его, чтобы передать свое задание, но ваш инструктор неправ , чтобы утверждать, что это не должно быть там.
Кроме того, в производственном коде в будущем вы будете использовать случайные функции C ++ 11 , а не древние rand()
. Probably Вы, вероятно, никогда не будете учить этому в школе, потому что школы не преподают С ++ производственного качества, но это то, что вы должны изучать сами или сейчас, или когда выходите на рынок труда.