Брутально и бессердечно о программировании и проектировании
ГлавнаяФорумАртПаттерныАнтипаттерныЗаметкиВопрос-ответКнигорецензииСправочная

13. Используем enum: советы Дженифер Лопес

Какие из приведенных инструкций приведут к ошибке компиляции?
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
enum day_of_week
{
    monday,
    tuesday,
    wednesday,
    thursday,
    friday,
    saturday,
    sunday
};

int main()
{
    day_of_week yesterday;
    day_of_week today    = friday;
    day_of_week tomorrow = saturday;

    today++;
    --today;

    int day_number = today;
    today = day_number;

    int salary[7] = {0};
    salary[today] = 150;

    bool is_less = today < tomorrow;

    ~today;
    !today;

    today &  tomorrow;
    today || tomorrow;
    today << tomorrow;
    today += tomorrow;

    return 0;
}
Компилировать в Comeau
Правильный ответ.
Ошибки будут только там, где происходит попытка модификации значения enum, поскольку такая попытка не гарантирует того, что новое значение будет находиться в указанном диапазоне. В остальном enum свободно конвертируется в int. Компилятор сделает все, чтобы не допустить выход значения за указанный диапазон. В этом правиле, к сожалению, существует исключение. Объявление enum-а без инициализации (строка .013) не является ошибкой компиляции, однако его значением будет мусор.

Оглавление
Статистика
© 2007—2009 Inside C++ Коммерческие услугиКонтактная информация

двери форпост. новокузнецк продажа авиабилетов. копии часов Corum Cup Chronograph. дизайн детской. Mercedes clk, mercedes 230. Профессиональное мытье окон по низкой цене