Je me demandais ce que pourrait être la taille d'un objet d'une classe vide. Il n'aurait certainement pas être de 0 octets, car il devrait être possible de référence et le point comme n'importe quel autre objet. Mais, quelle est la taille d'un tel objet?
J'ai utilisé ce petit programme:
#include <iostream>
using namespace std;
class Empty {};
int main()
{
Empty e;
cerr << sizeof(e) << endl;
return 0;
}
La sortie je suis sur Visual C++ et Cygwin-g++ compilateurs a 1 octet! C'était un peu surprenant pour moi car je m'attendais à ce qu'il soit de la taille de la machine mot (32 bits ou 4 octets).
Quelqu'un peut-il expliquer pourquoi la taille de 1 octet? Pourquoi pas 4 octets? Est-ce la dépend du compilateur et de la machine? Aussi, quelqu'un peut donner un plus convaincante de la raison pour laquelle une classe vide de l'objet ne va pas être de la taille de 0 octets?