Me preguntaba cuál podría ser el tamaño de un objeto de una clase vacía . Seguramente no podría tener 0 bytes, ya que debería ser posible hacer referencia y señalarlo como cualquier otro objeto. Pero, ¿qué tan grande es un objeto así?
Usé este pequeño programa:
#include <iostream>
using namespace std;
class Empty {};
int main()
{
Empty e;
cerr << sizeof(e) << endl;
return 0;
}
¡El resultado que obtuve en los compiladores de Visual C ++ y Cygwin-g ++ fue de 1 byte ! Esto me sorprendió un poco, ya que esperaba que fuera del tamaño de la palabra de la máquina (32 bits o 4 bytes).
¿Alguien puede explicar por qué el tamaño de 1 byte? ¿Por qué no 4 bytes? ¿Esto depende del compilador o también de la máquina? Además, ¿alguien puede dar una razón más convincente de por qué un objeto de clase vacío no tendrá un tamaño de 0 bytes?