কম্পিউটার

কেন একটি খালি ক্লাসের আকার C++ এ শূন্য নয়?


ধরুন আমাদের C++ এ একটি খালি ক্লাস আছে। এখন এর সাইজ 0 কি না তা পরীক্ষা করা যাক। প্রকৃতপক্ষে, মান 0 আকারের বস্তুর (বা ক্লাস) অনুমতি দেয় না, কারণ এটি দুটি স্বতন্ত্র বস্তুর জন্য একই মেমরি অবস্থান থাকা সম্ভব করে তোলে। এই ধারণার পিছনের কারণ হল যে এমনকি একটি খালি ক্লাসের একটি সাইজ কমপক্ষে 1 থাকতে হবে। এটি জানা যায় যে একটি খালি ক্লাসের আকার শূন্য নয়। সাধারণত, এটি 1 বাইট। নিচের উদাহরণটি দেখুন।

উদাহরণ

আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -

#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

গতিশীল বরাদ্দের জন্যও, নতুন কীওয়ার্ড একই কারণে ভিন্ন ঠিকানা প্রদান করে।

উদাহরণ (C++)

#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++ এ রেজিস্টার স্টোরেজ ক্লাস

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

  3. কেন C++ সেরা প্রোগ্রামিং ভাষা?

  4. কনস্ট্রাক্টরের নাম জাভাতে ক্লাসের নামের মতো কেন?