অবজেক্ট-অরিয়েন্টেড প্রোগ্রামিং-এ, আমরা প্যারেন্ট ক্লাসের বৈশিষ্ট্যগুলো ইনহেরিট করতে পারি। প্যারেন্ট ক্লাসকে বেস ক্লাস বলা হয় যখন চাইল্ড ক্লাসকে ডেরাইভড ক্লাস বলা হয়। ডেরাইভড ক্লাস বেস ক্লাসের ডাটা মেম্বার, মেম্বার ফাংশন ইনহেরিট করতে পারে।
যদি ডাটা মেম্বার পাবলিক হয়, তবে সেগুলো ডেরাইভড ক্লাস, সেম ক্লাস এবং ক্লাসের বাইর থেকেও অ্যাক্সেস করা যায়। যদি ডাটা মেম্বার প্রোটেক্টেড হয়, তবে সেগুলো ডেরাইভড এবং সেম ক্লাস থেকে অ্যাক্সেস করা যায়, কিন্তু ক্লাসের বাইর থেকে অ্যাক্সেস করা যায়না। যদি ডাটা মেম্বার প্রাইভেট হয়, তবে শুধু সেম ক্লাস অ্যাক্সেস করতে পারে।
C++-এ ইনহেরিটেন্সের একটি উদাহরণ নিচে দেওয়া হল,
উদাহরণ
#include <bits/stdc++.h>
using namespace std;
class Base {
public:
int a;
protected:
int b;
private:
int c;
};
class Derived : public Base {
public:
int x;
};
int main() {
Derived d;
d.a = 10;
d.x = 20;
cout << "Derived class data member vale : " << d.x << endl;
cout << "Base class data member value : " << d.a << endl;
return 0;
}
আউটপুট
Derived class data member vale : 20 Base class data member value : 10
উপরের প্রোগ্রামে, ডেরাইভড ক্লাস বেস ক্লাস এবং এর ডাটা মেম্বার ইনহেরিট করছে। ডেরাইভড ক্লাস অবজেক্ট d তৈরি করা হয়েছে এবং বেস ও ডেরাইভড ক্লাসের ডাটা মেম্বার a এবং x কল করতে ব্যবহৃত হয়েছে। কিন্তু এটি b এবং c ভেরিয়েবল অ্যাক্সেস করতে পারে না কারণ সেগুলো প্রোটেক্টেড এবং প্রাইভেট, চেষ্টা করলে এরর দেখাবে।
Derived d; d.a = 10; d.x = 20;