Значение индекса перечисления C ++ - PullRequest
0 голосов
/ 06 мая 2018

Как я понимаю, если у нас есть enum n{sunday //0,monday //1 ,Tuesday //2}

так enum r { one, two = 4, three = 1, four};

что значение одного должно быть 0, два - 4, три - 1 и четыре - 3

я пытался

cout << four

Результат

2

Ответы [ 2 ]

0 голосов
/ 06 мая 2018

enum работает так, давайте рассмотрим ваш пример:

enum r { one, two = 4, three = 1, four};

one начинается с 0, поскольку начальное значение не определено.

two определяется как 4, если он не был объявлен как 4, two будет 1.

three определяется как 1, если two и three не были объявлены ранее, вместо этого будет 2, но это 1.

four не имеет никакого равенства, поэтому он получит следующее назначенное значение, поскольку three было 1, four будет 2.

Если бы значения не были назначены, это выглядело бы так:

enum r { one, two, three, four};

one = 0, two = 1, three = 2, four = 3.

Надеюсь, это вам поможет.

0 голосов
/ 06 мая 2018

Поскольку three назначено 1, а four - нет, оно присвоено three+1, поэтому four = three + 1

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...