স্ট্রাকচার এবং ইউনিয়নের মধ্যে পার্থক্য:
C++-এ স্ট্রাকচার (structure) এবং ইউনিয়ন (union) উভয়ই ডেটা একত্রিত করার জন্য ব্যবহৃত হয়, তবে তাদের মধ্যে কিছু মৌলিক পার্থক্য রয়েছে।
স্ট্রাকচার (Structure):
- স্ট্রাকচার একটি ব্যবহারকারী-সংজ্ঞায়িত ডেটা টাইপ যা একাধিক ভ্যারিয়েবলের একত্রিত হতে পারে।
- স্ট্রাকচারে প্রতিটি সদস্য (মেম্বার) নিজস্ব মেমরি বরাদ্দ পায়।
- একটি স্ট্রাকচারের সব সদস্য একযোগে ব্যবহার করা যায়।
- স্ট্রাকচারের প্রতিটি সদস্য আলাদা আলাদা মেমরি লোকেশন ধারণ করে, অর্থাৎ এটি সমস্ত সদস্যদের জন্য আলাদা মেমরি স্পেস বরাদ্দ করে।
স্ট্রাকচার উদাহরণ:
#include
using namespace std;
struct Person {
string name;
int age;
};
int main() {
Person person1;
person1.name = "Alice";
person1.age = 30;
cout
ইউনিয়ন (Union):
- ইউনিয়ন একটি ব্যবহারকারী-সংজ্ঞায়িত ডেটা টাইপ যা একাধিক ভ্যারিয়েবল ধারণ করতে পারে, তবে শুধুমাত্র একটি ভ্যারিয়েবল একসাথে ব্যবহার করা সম্ভব।
- ইউনিয়নে সমস্ত সদস্য একি মেমরি স্পেস শেয়ার করে।
- ইউনিয়নে শুধুমাত্র একটি সদস্য এক সময়ে স্টোর হতে পারে, অর্থাৎ অন্য সদস্যের মান ওভাররাইট হবে যখন একটি নতুন মান ইনপুট করা হবে।
- একটি ইউনিয়নে সমস্ত সদস্যদের জন্য শুধুমাত্র সর্বাধিক সদস্যের আকারের মতো মেমরি বরাদ্দ করা হয়।
ইউনিয়ন উদাহরণ:
#include
using namespace std;
union Data {
int i;
float f;
char c;
};
int main() {
Data data1;
data1.i = 10;
cout
পার্থক্য:
বিষয় |
স্ট্রাকচার (Structure) |
ইউনিয়ন (Union) |
মেমরি বরাদ্দ |
প্রতিটি সদস্যের জন্য আলাদা মেমরি বরাদ্দ হয়। |
সব সদস্য একি মেমরি স্পেস শেয়ার করে। |
একসাথে ব্যবহার |
সব সদস্য একযোগে ব্যবহার করা যায়। |
একই সময়ে শুধুমাত্র একটি সদস্য ব্যবহার করা যায়। |
মেমরি আকার |
মোট মেমরি আকার হল সব সদস্যের সম্মিলিত আকার। |
মোট মেমরি আকার হল সর্বাধিক সদস্যের আকার। |
সারাংশ:
- স্ট্রাকচার এবং ইউনিয়ন উভয়ই ডেটা একত্রিত করতে ব্যবহৃত হয়, তবে স্ট্রাকচারে প্রতিটি সদস্য আলাদা মেমরি স্পেস পায়, আর ইউনিয়নে সব সদস্য এক মেমরি স্পেস শেয়ার করে।
- স্ট্রাকচারে সমস্ত সদস্য একসাথে ব্যবহৃত হতে পারে, কিন্তু ইউনিয়নে শুধুমাত্র একটি সদস্য এক সময়ে ব্যবহার করা যায়।