Как известно, в C++ структуры можно наследовать.
struct A {
int a, b;
};
struct B: A {
int c, d;
};
struct C {
int a, b;
int c, d;
};
Вопрос: будет ли структура B чем-то отличаться во внутреннем представлении от C?
Допустимо ли использовать наследование структур для описания вещей, у которых важно внутреннее представление (оно не должно зависеть от версии компилятора, типа процессора, ОС и т. д.)? Например, данных, которые уйдут по сети или в файл (разумеется, добавить к описанию всех структур __attribute__((packed)) в таком случае)?
Это всё (наследование структур, возможность добавлять структурам конструкторы и методы) лишь синтаксический сахар и пока я не добавлю виртуальных методов (которые вызовут появления в структуре скрытого поля с указателем на vtable) внутреннее представление структуры будет полностью предсказуемо?