Поскольку enum
s в CPP имеет внутреннюю связь по умолчанию, т.е. они становятся приватными , если вы объявите их в struct or class
. Поэтому вы должны использовать ::
( оператор разрешения области действия ) для доступа к перечислителям (константы перечисления).
В C вы можете получить доступ к перечислителям напрямую, потому что они global по умолчанию.