на главнуюВсе эхи RU.CPP
войти ?

Выравнивание и наследование

От Soldatenkov Mitea (2:5080/147.141) к All

В ответ на Заголовок предыдущего сообщения в треде (Имя Автора)


Hi all!
Дано:
class Class1
{
public:
int X;
char C;
};
class Class2:public Class1
{
public:
char Q;
};
Спрашивается - как при минимальных плясках с бубном добиться того что бы
во-первых, размер Class1 был выровнен на четыре байта, во-вторых, размер
Class2 был равен восьми байтам? То есть, что бы место в конце Class1 не просто
резервировалось место под выравнивание, но и использовалось потомками.
2008 Студия, на
class Class1
{
public:
int X;
char C;
};
class Class2:public Class1
{
public:
char Q;
};
cout<<sizeof(Class2);
Для 32 битового кода выдает 12 байт.

--- WP/95 Rel 1.78E (215.0) Reg.
* Origin: Есть день знания, нет и минуты понимания (2:5080/147.141)

Ответы на это письмо:

From: Username
Заголовок следующего сообщения в треде может быть длинным и его придется перенести на новую строку

From: Username
Или коротким

FGHI-url этого письма: area://RU.CPP?msgid=2:5080/147.141+5ad878a9