Saya bertanya-tanya apa yang bisa menjadi ukuran objek dari kelas kosong . Ini pasti tidak boleh 0 byte karena harus memungkinkan untuk referensi dan menunjuk ke sana seperti objek lain. Tapi, seberapa besar benda seperti itu?
Saya menggunakan program kecil ini:
#include <iostream>
using namespace std;
class Empty {};
int main()
{
Empty e;
cerr << sizeof(e) << endl;
return 0;
}
Output yang saya dapatkan pada kompiler Visual C ++ dan Cygwin-g ++ adalah 1 byte ! Ini sedikit mengejutkan saya karena saya mengharapkannya seukuran kata mesin (32 bit atau 4 byte).
Adakah yang bisa menjelaskan mengapa ukuran 1 byte? Mengapa tidak 4 byte? Apakah ini tergantung pada kompiler atau mesin juga? Juga, dapatkah seseorang memberikan alasan yang lebih meyakinkan mengapa objek kelas kosong tidak berukuran 0 byte?