С кодом:Sizeof пустого класс
#include <iostream>
class A {};
class B { char x; };
int main()
{
std::cerr << sizeof(A) << " " << sizeof(B) << std::endl;
}
Я знаю, что это общий вопрос интервью задать размер пустого класса - и я знаю, ответ один.
Мой вопрос: что хранится в этом «1» байте для пустого класса (я предполагаю, что он пуст), и что делает компилятор внутренне, чтобы сделать его так, чтобы sizeof B
был таким же, как sizeof A
в этом случае?
Я хотел бы полностью понять это, а не просто знать ответ.
Это зависит от реализации компилятора. Возникает также вопрос: почему вас это волнует? –
Кто спрашивает об этом в интервью? Это ужасный вопрос интервью. – nmichaels
Посмотрите здесь: http://stackoverflow.com/questions/621616/c-what-is-the-size-of-an-object-of-an-empty-class – a1ex07