C++-এ একটি ক্লাসে পাবলিক, প্রাইভেট এবং প্রোটেক্টেড সেকশন থাকে যাতে সংশ্লিষ্ট ক্লাস মেম্বার থাকে।
প্রাইভেট ডাটা মেম্বার ক্লাসের বাইর থেকে অ্যাক্সেস করা যায়না। সেগুলো শুধু ক্লাস বা ফ্রেন্ড ফাংশন দ্বারা অ্যাক্সেস করা যায়। ডিফল্টভাবে সকল ক্লাস মেম্বার প্রাইভেট।
একটি ক্লাসে প্রোটেক্টেড মেম্বার প্রাইভেট মেম্বারের মতোই কিন্তু সেগুলো ডেরাইভড ক্লাস বা চাইল্ড ক্লাস দ্বারা অ্যাক্সেস করা যায় যখন প্রাইভেট মেম্বার অ্যাক্সেস করা যায়না।
একটি ক্লাসে প্রাইভেট এবং প্রোটেক্টেড মেম্বার প্রদর্শন করে একটি প্রোগ্রাম নিচে দেওয়া হল -
উদাহরণ
#include <iostream>
using namespace std;
class Base {
public:
int a = 8;
protected:
int b = 10;
private:
int c = 20;
};
class Derived : public Base {
public:
void func() {
cout << "The value of a : " << a;
cout << "\nThe value of b : " << b;
}
};
int main() {
Derived obj;
obj.func();
return 0;
}
আউটপুট
উপরোক্ত প্রোগ্রামের আউটপুট নিম্নরূপ।
The value of a : 8 The value of b : 10
এখন, আসুন উপরের প্রোগ্রামটি বুঝি।
Base ক্লাসে, ডাটা মেম্বার হল a, b এবং c যা যথাক্রমে পাবলিক, প্রোটেক্টেড এবং প্রাইভেট। এর কোড স্নিপেট নিচে দেওয়া হল।
class Base {
public:
int a = 8;
protected:
int b = 10;
private:
int c = 20;
};
Derived ক্লাস Base ক্লাস ইনহেরিট করে। func() ফাংশন a এবং b-এর মান প্রিন্ট করে। এটি c-এর মান প্রিন্ট করতে পারে না কারণ সেটি Base ক্লাসের প্রাইভেট এবং Derived ক্লাসে অ্যাক্সেসযোগ্য নয়। এর কোড স্নিপেট নিচে দেওয়া হল।
class Derived : public Base {
public:
void func() {
cout << "The value of a : " << a;
cout << "\nThe value of b : " << b;
}
};
main() ফাংশনে, Derived ক্লাসের অবজেক্ট obj তৈরি করা হয়েছে। তারপর func() ফাংশনটি কল করা হয়েছে। এর কোড স্নিপেট নিচে দেওয়া হল।
int main() {
Derived obj;
obj.func();
return 0;
}