у меня 4 класса А, В, С, D.
B и C наследуют A, а D наследуют B и C.
Если A, B, C, D не имеет какой-либо переменной-члена, sizeof(D)
возвращает 1 (что ожидается).
Но когда B имеет одно целое число в качестве переменной-члена, sizeof(D)
внезапно меняется на 8.
Так как sizeof(int)
равно 4, разве sizeof(D)
также не должно возвращать 4?
class A
{
};
class B : public A
{
int data;
};
class C : public A
{
};
class D : public B, public C
{
};
int main()
{
sizeof(A); // 1
sizeof(B); // 4
sizeof(C); // 1
sizeof(D); // 8?
}