কম্পিউটার

C++ এ কীওয়ার্ড ওভাররাইড করুন


ফাংশন ওভাররাইডিং হল C++ এর সবচেয়ে সাধারণ বৈশিষ্ট্য। মূলত ফাংশন ওভাররাইডিং মানে একটি ফাংশনকে পুনরায় সংজ্ঞায়িত করা যা বেস ক্লাসে উপস্থিত থাকে, এছাড়াও প্রাপ্ত শ্রেণীতেও সংজ্ঞায়িত করা হয়। সুতরাং ফাংশন স্বাক্ষর একই কিন্তু আচরণ ভিন্ন হবে।

কিন্তু এমন একটি পরিস্থিতি হতে পারে যখন একজন প্রোগ্রামার সেই ফাংশনটি ওভাররাইড করার সময় ভুল করে। যদি স্বাক্ষর একই না হয়, তাহলে এটি অন্য ফাংশন হিসাবে বিবেচিত হবে, তবে ওভাররাইড করা পদ্ধতি বা এটি নয়। সেক্ষেত্রে আমরা ওভাররাইড কীওয়ার্ড ব্যবহার করতে পারি। এই কীওয়ার্ডটি C+ +11-এ চালু করা হয়েছে। যখন কম্পাইলার এই ধরনের কীওয়ার্ড খুঁজে পায়, তখন বুঝতে পারে এটি একই ক্লাসের একটি ওভাররাইডেড সংস্করণ।

ধারণাটি বোঝার জন্য আসুন উদাহরণটি দেখি।

উদাহরণ

#include <iostream>
using namespace std;
class BaseClass{
   public:
      virtual void display() {
         cout << "Displaying from Base Class\n";
      }
};
class DerivedClass : public BaseClass{
   public:
      void display() {
         cout << "Displaying from Derived Class\n";
      }
};
main() {
   BaseClass *b_ptr;
   b_ptr = new DerivedClass();
   b_ptr->display();
}

আউটপুট

Displaying from Derived Class

এই ক্ষেত্রে প্রোগ্রামটি ভাল কাজ করছে কারণ স্বাক্ষরগুলি একই। নিম্নলিখিত উদাহরণে, স্বাক্ষর ভিন্ন হবে। ওভাররাইড কীওয়ার্ডের জন্য, এটি একটি ত্রুটি তৈরি করবে।

উদাহরণ

#include <iostream>
using namespace std;
class BaseClass{
   public:
      virtual void display() {
         cout << "Displaying from Base Class\n";
      }
};
class DerivedClass : public BaseClass{
   public:
      void display(int x) override{
         cout << "Displaying from Derived Class\n";
      }
};
main() {
   BaseClass *b_ptr;
   b_ptr = new DerivedClass();
   b_ptr->display();
}

আউটপুট

[Error] 'void DerivedClass::display(int)' marked override, but does not override

এই ক্ষেত্রে, প্রোগ্রামটি সূক্ষ্ম কাজ করছে কারণ স্বাক্ষরগুলি একই। নিম্নলিখিত উদাহরণে, স্বাক্ষর ভিন্ন হবে। ওভাররাইড কীওয়ার্ডের জন্য, এটি ত্রুটি তৈরি করবে।


  1. C++ এ একাধিক উত্তরাধিকার

  2. C++ এ নেস্টেড ক্লাস

  3. C++ এ স্থানীয় ক্লাস

  4. C# এ স্ট্যাটিক কীওয়ার্ড