কম্পিউটার টিউটোরিয়াল

C++-এ খালি ক্লাসের সাইজ শূন্য নয় কেন?


ফ্যাক্ট

C++-এ খালি ক্লাস (empty class) এর সাইজ কমপক্ষে ১ বাইট হয়। স্ট্যান্ডার্ড অনুযায়ী, কোনো অবজেক্টের সাইজ ০ হতে পারে না, কারণ তাহলে দুটি ভিন্ন অবজেক্ট একই মেমরি ঠিকানায় থাকতে পারত।

উদাহরণ

#include <iostream>
using namespace std;
class MyClass { };
int main() { cout << sizeof(MyClass); }
1

ভিন্ন অবজেক্ট, ভিন্ন ঠিকানা

#include <iostream>
using namespace std;
class MyClass { };
int main() {
    MyClass a, b;
    if (&a == &b) cout << "Same" << endl;
    else cout << "Not same" << endl;
}
Not same

ডাইনামিক অ্যালোকেশনে ও ভিন্ন ঠিকানা

#include <iostream>
using namespace std;
class MyClass { };
int main() {
    MyClass *a = new MyClass();
    MyClass *b = new MyClass();
    if (a == b) cout << "Same" << endl;
    else cout << "Not same" << endl;
}
Not same

নिष्कর্ষ

খালি ক্লাসেও কমপক্ষে ১ বাইট মেমরি আশ্রয় করে যাতে প্রতিটি অবজেক্টের অনন্য ঠিকানা থাকে।

  1. C++-এ register স্টোরেজ ক্লাস

  2. C++-এ auto স্টোরেজ ক্লাস

  3. কেন C++ সেরা প্রোগ্রামিং ল্যাঙ্গুয়েজ?

  4. জাভাতে কনস্ট্রাক্টরের নাম ক্লাসের নামের সাথে একই কেন