অবজেক্ট-ওরিয়েন্টেড প্রোগ্রামিং-এ আমরা প্যারেন্ট ক্লাসের বৈশিষ্ট্যগুলি উত্তরাধিকার সূত্রে পেতে পারি। অভিভাবক শ্রেণী বেস শ্রেণী হিসাবে পরিচিত এবং শিশু শ্রেণী প্রাপ্ত শ্রেণী হিসাবে পরিচিত। প্রাপ্ত ক্লাস ডেটা সদস্য, বেস ক্লাসের সদস্য ফাংশনগুলিকে উত্তরাধিকার সূত্রে পেতে পারে।
যদি ডেটা সদস্যরা সর্বজনীন হয়, তবে তারা প্রাপ্ত ক্লাস, একই ক্লাস এবং ক্লাসের বাইরে অ্যাক্সেস করতে পারে। যদি ডেটা সদস্যরা সুরক্ষিত থাকে, তবে তারা শুধুমাত্র প্রাপ্ত এবং একই শ্রেণীর দ্বারা অ্যাক্সেস করা যেতে পারে, তবে ক্লাসের বাইরে, তাদের অ্যাক্সেস করা যাবে না। ডেটা সদস্যরা ব্যক্তিগত হলে, শুধুমাত্র একই শ্রেণী তাদের অ্যাক্সেস করতে পারে৷
৷এখানে 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
উপরের প্রোগ্রামে, derived class বেস ক্লাস এবং এর ডাটা সদস্যদের উত্তরাধিকারী করে। Derived class অবজেক্ট d তৈরি করা হয় এবং বেস এবং derived class a এবং x এর ডেটা মেম্বারদের কল করতে ব্যবহৃত হয়। কিন্তু এটি বেস ক্লাসের ভেরিয়েবল b এবং c অ্যাক্সেস করতে পারে না কারণ তারা সুরক্ষিত এবং ব্যক্তিগত, আমরা যদি সেগুলি অ্যাক্সেস করার চেষ্টা করি তবে এটি ত্রুটি দেখাবে৷
Derived d; d.a = 10; d.x = 20;