আমি ভাবছিলাম যে খালি শ্রেণির কোনও জিনিসের আকার কী হতে পারে । এটি অবশ্যই 0 বাইট হতে পারে না যেহেতু এটি অন্য কোনও অবজেক্টের মতো উল্লেখ করা এবং এটি নির্দেশ করা সম্ভব হওয়া উচিত। কিন্তু, এত বড় একটি বিষয়?
আমি এই ছোট প্রোগ্রামটি ব্যবহার করেছি:
#include <iostream>
using namespace std;
class Empty {};
int main()
{
Empty e;
cerr << sizeof(e) << endl;
return 0;
}
আমি ভিজ্যুয়াল সি ++ এবং সাইগউইন-জি ++ সংকলক উভয়কেই আউটপুটটি পেয়েছিলাম 1 বাইট ! এটি আমার কাছে একটু অবাক হওয়ার কারণ আমি এটি মেশিন শব্দের আকার (32 বিট বা 4 বাইট) আকারের আশা করছিলাম।
1 বাইটের আকার কেন কেউ ব্যাখ্যা করতে পারেন ? 4 বাইট না কেন ? এটি কি সংকলক বা মেশিনের উপরও নির্ভর করে? এছাড়াও, কেউ কি খালি শ্রেণীর অবজেক্টটি 0 বাইটের আকারের হবে না এর জন্য আরও বেশি যুক্তিযুক্ত কারণ দিতে পারে?