मैं सोच रहा था कि एक खाली वर्ग की वस्तु का आकार क्या हो सकता है । यह निश्चित रूप से 0 बाइट्स नहीं हो सकता है क्योंकि इसे किसी अन्य ऑब्जेक्ट की तरह संदर्भ और इंगित करना संभव होना चाहिए। लेकिन, ऐसी वस्तु कितनी बड़ी है?
मैंने इस छोटे कार्यक्रम का उपयोग किया:
#include <iostream>
using namespace std;
class Empty {};
int main()
{
Empty e;
cerr << sizeof(e) << endl;
return 0;
}
विजुअल C ++ और Cygwin-g ++ कंपाइलर दोनों पर मुझे मिला आउटपुट 1 बाइट था ! यह मेरे लिए थोड़ा आश्चर्यचकित करने वाला था क्योंकि मैं इसे मशीन शब्द (32 बिट्स या 4 बाइट्स) के आकार का होने की उम्मीद कर रहा था।
क्या कोई समझा सकता है कि 1 बाइट का आकार क्यों ? 4 बाइट्स क्यों नहीं ? क्या यह कंपाइलर या मशीन पर भी निर्भर है? इसके अलावा, क्या कोई खाली वर्ग वस्तु 0 बाइट्स का नहीं होगा , इसके लिए कोई और अधिक कारण दे सकता है?