C++-এ স্ট্রাকচার এবং ক্লাস খুব একই কিন্তু কিছু পার্থক্য আছে। তাই নিচে সেই পার্থক্যগুলো দেওয়া হলো যা C++-এ ক্লাস বা স্ট্রাকচার কখন ব্যবহার করবেন সেটি সিদ্ধান্ত নেওয়ায় সাহায্য করবে।
ক্লাস এবং স্ট্রাকচারের পার্থক্য
একটি ক্লাসের সকল মেম্বার ডিফল্টভাবে প্রাইভেট। এটি স্ট্রাকচারের সাথে ভিন্ন কারণ একটি স্ট্রাকচারের সকল মেম্বার ডিফল্টভাবে পাবলিক।
C++-এ একটি ক্লাস প্রদর্শন করে একটি প্রোগ্রাম নিচে দেওয়া হল -
উদাহরণ
#include <iostream>
using namespace std;
class Example {
int val;
};
int main() {
Example obj;
obj.val = 20;
return 0;
}
এই প্রোগ্রামটি এরর দেবে কারণ val ডিফল্টভাবে প্রাইভেট তাই obj ব্যবহার করে সরাসরি অ্যাক্সেস করা যায়না।
C++-এ একটি স্ট্রাকচার প্রদর্শন করে একটি প্রোগ্রাম নিচে দেওয়া হল -
উদাহরণ
#include <iostream>
using namespace std;
struct Example {
int val;
};
int main() {
Example obj;
obj.val = 20;
cout << "Value is: " << obj.val;
return 0;
}
আউটপুট
উপরোক্ত প্রোগ্রামের আউটপুট নিম্নরূপ -
Value is: 20
উপরের প্রোগ্রামটি সঠিকভাবে কাজ করে কারণ val ডিফল্টভাবে পাবলিক তাই obj ব্যবহার করে সরাসরি অ্যাক্সেস করা যায়।
ক্লাস এবং স্ট্রাকচারের মধ্যে আরেকটি পার্থক্য ইনহেরিটেন্সের সময় দেখা যায়। ক্লাস ইনহেরিট করার সময়, বেস ক্লাসের অ্যাক্সেস স্পেসিফায়ার ডিফল্টভাবে প্রাইভেট। তুলনামূলকভাবে, স্ট্রাকচার ইনহেরিট করার সময়, বেস স্ট্রাকচারের অ্যাক্সেস স্পেসিফায়ার ডিফল্টভাবে পাবলিক।