Mi chiedevo quale potesse essere la dimensione di un oggetto di una classe vuota . Sicuramente non potrebbe essere 0 byte poiché dovrebbe essere possibile fare riferimento e puntare ad esso come qualsiasi altro oggetto. Ma quanto è grande un oggetto del genere?
Ho usato questo piccolo programma:
#include <iostream>
using namespace std;
class Empty {};
int main()
{
Empty e;
cerr << sizeof(e) << endl;
return 0;
}
L'output che ho ottenuto su entrambi i compilatori Visual C ++ e Cygwin-g ++ era di 1 byte ! Questo è stato un po 'sorprendente per me poiché mi aspettavo che fosse della dimensione della parola macchina (32 bit o 4 byte).
Qualcuno può spiegare perché la dimensione di 1 byte? Perché non 4 byte? Dipende anche dal compilatore o dalla macchina? Inoltre, qualcuno può fornire una ragione più convincente per cui un oggetto di classe vuoto non sarà di dimensione 0 byte?