¿Por qué C ++ no hace que la estructura sea más estricta?

Por ejemplo, tengo unclass,

class naive {
public:
    char a;
    long long b;
    char c;
    int d;
};

y de acuerdo con mi programa de pruebas,a ad se construyen uno tras otro, como

a-------
bbbbbbbb
c---dddd

- significa no utilizado.

Por qué C ++ no lo hace más ajustado, como

ac--dddd
bbbbbbbb

Respuestas a la pregunta(1)

Su respuesta a la pregunta