কম্পিউটার

C++ এ বেস ক্লাসে সমস্ত ওভারলোড করা পদ্ধতি লুকানো


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

পরিষ্কার ধারণা পেতে একটি উদাহরণ দেখা যাক।

উদাহরণ

#include <iostream>
using namespace std;
class MyBaseClass {
   public:
      void my_function() {
         cout << "This is my_function. This is taking no arguments" << endl;
      }
      void my_function(int x) {
         cout << "This is my_function. This is taking one argument x" << endl;
      }
};
class MyDerivedClass : public MyBaseClass {
   public:
      void my_function() {
         cout << "This is my_function. From derived class, This is taking no arguments" << endl;
      }
};
main() {
   MyDerivedClass ob;
   ob.my_function(10);
}

আউটপুট

[Error] no matching function for call to 'MyDerivedClass::my_function(int)'
[Note] candidate is:
[Note] void MyDerivedClass::my_function()
[Note] candidate expects 0 arguments, 1 provided

  1. C++ এ স্ট্রাকচার বনাম ক্লাস

  2. C++ এ বেস এবং প্রাপ্ত ক্লাসের ব্যতিক্রম ধরা

  3. C++ এ প্যারেন্ট ক্লাস থেকে উত্তরাধিকারসূত্রে কী পাওয়া যায়?

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