উত্তরাধিকারের পাশাপাশি, C++ এও কনস্ট্রাক্টর অপরিহার্য। ক নির্মাণকারী একটি অনন্য সদস্য ফাংশন যা আপনাকে বস্তুর বৈশিষ্ট্যগুলি শুরু করতে দেয়। একটি উত্তরাধিকার নির্মাণকারী একটি কনস্ট্রাক্টর হল বেস ক্লাস এবং ডেরাইভড ক্লাস অবজেক্ট উভয়ই ইনিশিয়ালাইজ করার জন্য ব্যবহৃত হয় যা প্রাপ্ত বর্গ উত্তরাধিকারসূত্রে পেয়েছে। দ্য উত্তরাধিকার নির্মাণকারী উত্তরাধিকারসূত্রে প্রাপ্ত বেস শ্রেণীর সদস্য এবং প্রাপ্ত শ্রেণীর সদস্য উভয়ই শুরু করার জন্য দায়ী। এটি অর্জনের জন্য, কনস্ট্রাক্টর বেস ক্লাসের কনস্ট্রাক্টরকে আমন্ত্রণ জানায়, নিশ্চিত করে যে প্রাপ্ত ক্লাসের সমস্ত সদস্য সঠিকভাবে শুরু করা হয়েছে, বেস ক্লাস থেকে উত্তরাধিকারসূত্রে পাওয়া সহ।
বেস ক্লাসের কনস্ট্রাক্টরকে আহ্বান করে এবং প্রয়োজনীয় প্যারামিটারগুলি পাস করে, উত্তরাধিকার নির্মাণকারী বেস ক্লাসের সদস্যদের আরম্ভ করে। এই ব্যবহার করে সম্পন্ন করা হয় 'বেস ক্লাস (আর্গস)' কনস্ট্রাক্টরে আরম্ভ করার তালিকা। উদ্ভূত শ্রেণীর জন্য আরও নির্দেশাবলী কনস্ট্রাক্টর বডিতে সরবরাহ করা হয়েছে।
জন্য সিনট্যাক্স উত্তরাধিকারসূত্রে C++ এ একটি ক্লাস হল:
ক্লাস DerivedClass : অ্যাক্সেস স্পেসিফায়ার বেসক্লাস {
// শ্রেণীর সদস্য
} ;
এ ক্ষেত্রে নতুন শ্রেণী গঠিত হচ্ছে, 'DrivedClass', থেকে উত্তরাধিকারী হবে 'বেসক্লাস'। উত্তরাধিকারসূত্রে প্রাপ্ত সদস্যদের অ্যাক্সেসের স্তরটি দ্বারা নির্দিষ্ট করা হয় ' অ্যাক্সেস স্পেসিফায়ার'। C++ তিন ধরনের অ্যাক্সেস স্পেসিফায়ার ব্যবহার করে, যথা 'প্রকাশ্য ব্যক্তিগত', এবং 'সুরক্ষিত' . শব্দ 'পাবলিক' ইঙ্গিত করে যে প্রাপ্ত শ্রেণীর বেস ক্লাসের পাবলিক সদস্যদের অ্যাক্সেস রয়েছে। প্রাপ্ত বর্গ বেস শ্রেণীর সদস্যদের কোন অ্যাক্সেস নেই, অনুযায়ী 'ব্যক্তিগত' স্পেসিফায়ার প্রাপ্ত শ্রেণীর সুরক্ষিত বেস শ্রেণীর সদস্যদের অ্যাক্সেস রয়েছে যা তাদের শিশু শ্রেণীর দ্বারা উত্তরাধিকারসূত্রে পাওয়া যেতে পারে, 'সুরক্ষিত' স্পেসিফায়ার
C++ এ উত্তরাধিকারের উদাহরণ
নিম্নলিখিত উদাহরণ বাস্তবায়ন দেখান উত্তরাধিকার C++ এ:
# অন্তর্ভুক্ত করুন
ব্যবহার নামস্থান std ;
ক্লাস পশু {
পাবলিক :
অকার্যকর খাওয়া ( ) {
cout << 'আমি খেতে পারি!' << endl ;
}
অকার্যকর ঘুম ( ) {
cout << 'আমি ঘুমাতে পারি!' << endl ;
}
} ;
ক্লাস বিড়াল : পাবলিক পশু {
পাবলিক :
অকার্যকর মিউ ( ) {
cout << 'আমি মায়াও করতে পারি!' << endl ;
}
} ;
int প্রধান ( ) {
বিড়াল বিড়াল ঘ ;
cat1. খাওয়া ( ) ;
cat1. ঘুম ( ) ;
cat1. মিউ ( ) ;
প্রত্যাবর্তন 0 ;
}
প্রদত্ত কোড দুটি ক্লাস সংজ্ঞায়িত করে, 'প্রাণী' এবং 'বিড়াল' , কোথায় 'বিড়াল' এসেছে এটা থেকে 'প্রাণী' . উভয় শ্রেণীর কিছু সদস্য ফাংশন আছে, যেমন 'ঘুম খাওয়া' , এবং 'মিউ' . প্রধান ফাংশন ক্লাসের একটি বস্তু তৈরি করে 'বিড়াল' এবং কল করে উত্তরাধিকারসূত্রে প্রাপ্ত ক্লাস থেকে ফাংশন 'প্রাণী' সেইসাথে ক্লাসের নির্দিষ্ট ফাংশন 'বিড়াল' , যা হলো 'মিউ' . প্রোগ্রামটি কনসোলে টেক্সট আউটপুট করে, যা নির্দেশ করে যে বিড়াল খেতে, ঘুমাতে এবং মায়াও করতে পারে।
আউটপুট
যখন একটি ক্লাস উদ্ভূত হয়, তখন সমস্ত বেস ক্লাসের সদস্য ভেরিয়েবল এবং সদস্য ফাংশনগুলি প্রাপ্ত ক্লাসে স্থানান্তরিত হয়। দ্য উত্তরাধিকারসূত্রে প্রাপ্ত প্রাপ্ত শ্রেণীতে সদস্যদের অ্যাক্সেসযোগ্যতা অ্যাক্সেস নির্দিষ্টকারী দ্বারা নির্ধারিত হয়। প্রাপ্ত বর্গটি ইতিমধ্যে বিদ্যমান বৈশিষ্ট্যগুলির জন্য নতুন বৈশিষ্ট্যগুলিকে প্রতিস্থাপন করতে পারে। এটি বেস ক্লাসের পদ্ধতির জন্য নতুন বাস্তবায়ন যোগ করতে পারে এবং নতুন সদস্য ফাংশন এবং ভেরিয়েবল যোগ করতে পারে।
এটা মনে রাখা গুরুত্বপূর্ণ যে উত্তরাধিকার নির্মাণকারী বেস ক্লাসের ডিফল্ট কনস্ট্রাক্টর থাকলে বা এটি উপলব্ধ না থাকলে প্রয়োজনীয় প্যারামিটার সহ বেস ক্লাসের কনস্ট্রাক্টরকে স্পষ্টভাবে কল করতে ব্যবহার করা আবশ্যক।
উপসংহার
এর শক্তিশালী বৈশিষ্ট্য উত্তরাধিকার C++-এ ক্লাসগুলিকে অন্যদের থেকে বৈশিষ্ট্য এবং ক্রিয়া উত্তরাধিকারসূত্রে কোড পুনরায় ব্যবহার করার অনুমতি দেয়। C++ এর একটি দরকারী বৈশিষ্ট্য উত্তরাধিকার নির্মাণকারী প্রাপ্ত ক্লাসগুলিকে একটি বেস ক্লাসের বৈশিষ্ট্য, পদ্ধতি এবং ডেটা সদস্যদের উত্তরাধিকারী হতে দেয়। বেস ক্লাস কনস্ট্রাক্টরগুলির জন্য একটি প্রারম্ভিক তালিকা যোগ করার সাথে, এটি একটি স্ট্যান্ডার্ড কনস্ট্রাক্টর হিসাবে একই সিনট্যাক্স ব্যবহার করে সংজ্ঞায়িত করা হয়। C++ প্রোগ্রামাররা কোড ডুপ্লিকেশন কমিয়ে আনতে পারে এবং কোড স্ট্রাকচার উন্নত করতে পারে উত্তরাধিকার নির্মাণকারী . অবজেক্ট-ওরিয়েন্টেড প্রোগ্রামিং-এ জটিল ক্লাস শ্রেণীবিন্যাস তৈরি করার জন্য, এটি একটি গুরুত্বপূর্ণ টুল।