C++ продолжить битовое поле базового класса в производном классеC++

Программы на C++. Форум разработчиков
Anonymous
C++ продолжить битовое поле базового класса в производном классе

Сообщение Anonymous »

У меня есть базовый класс с битовым полем

Код: Выделить всё

enum Enum {
ENUM1,
ENUM2,
...
ENUM8
};

struct Base {
Enum type : 3;
};
Я наследую класс

Код: Выделить всё

struct Derived : public Base {
bool bf1 :  1;
u32  bf2 : 19,
u32  bf1 :  9;
};
Мне нужно убедиться, что пространство памяти для класса Derived составляет 4 байта (микроконтроллер у меня 32-битный), так как наследуемых классов будет несколько и их нужно сериализовать, а при распаковке по полю "тип" понять как обрабатывать остальные битовые поля.
Надежный ли этот способ? Если нет, то как мы можем сделать это лучше?
Мой компилятор CLang все упаковывает правильно, но я не уверен в надежности этого результата.

Подробнее здесь: https://stackoverflow.com/questions/786 ... ived-class

Вернуться в «C++»