C++, что значит наследование enum class

181
08 апреля 2022, 03:10

Рассмотрим следующий код:

enum class Enum : uint8_t
{
    // ...
};

Подскажите, пожалуйста, верно ли я понимаю, что данное наследование(если это можно так назвать) позволяет задать размер типа?

Например, у меня есть DLL и в ней есть функция, которая принимает указатель на структуру, в которой есть некие данные. Могу ли я (ради удобства) использовать в этой структуре поле не типа uint8_t, а типа enum class .. : uint8_t?

Например:

enum class Code : uint8_t
{
    // ...
};    
struct Message
{
    Code code;
    // ...
};

С таким кодом было бы намного удобнее работать, потому что сразу было бы понятно, за что отвечает поле code и какие возможные значения оно может принять. Единственная опасность заключается в том, что в поле могут попасть значения, для которых в enum class нет соответствия.

Все ли я верно понимаю?

READ ALSO
C++ выдаёт неправильные числа

C++ выдаёт неправильные числа

Дело в том, что недавно начал изучать C++вовремя написания первой простой программы столкнулся с проблемой, что на выводе программы выдаёт...

206
Как вызвать функцию, если не completed? (mask())

Как вызвать функцию, если не completed? (mask())

Собственно, когда пользователь ввел телефон, кнопка разблокируется, но стоит ему удалить цифру и ничего не происходит

174
Помогите с jQuery show/hide

Помогите с jQuery show/hide

Пытаюсь сделать что бы при наведении на блок показывалась картинка внутри него, таких блоков много, у меня при наведении на 1 блок картинки...

79
Из select сделать radio переключатели

Из select сделать radio переключатели

Как в этом фильтре из селектов сделать два радио переключения чтоб всё работало также?https://codepenio/oleg-z-zin/pen/wvaBPLe Помогите плиз

102