কম্পিউটার

C++ এ ভার্চুয়াল ফাংশন এবং রানটাইম পলিমরফিজম


C++-এর ভার্চুয়াল ফাংশনগুলি প্রাপ্ত ক্লাস অবজেক্টের প্রকার না জেনেও যেকোনও প্রাপ্ত ক্লাসের বেস ক্লাস পয়েন্টার এবং কল পদ্ধতিগুলির একটি তালিকা তৈরি করতে ব্যবহার করে। ভার্চুয়াল ফাংশন রানটাইমে দেরিতে সমাধান করা হয়।

ভার্চুয়াল ফাংশনের প্রধান ব্যবহার হল রানটাইম পলিমরফিজম অর্জন করা। রানটাইম পলিমারফিজম শুধুমাত্র বেস ক্লাস টাইপের একটি পয়েন্টার (বা রেফারেন্স) এর মাধ্যমে অর্জন করা যেতে পারে। এছাড়াও, একটি বেস ক্লাস পয়েন্টার বেস ক্লাসের বস্তুর পাশাপাশি উদ্ভূত ক্লাসের বস্তুর দিকে নির্দেশ করতে পারে। উপরের কোডে, বেস ক্লাস পয়েন্টার 'b'-এ প্রাপ্ত ক্লাসের অবজেক্ট 'd'-এর ঠিকানা রয়েছে।

উদাহরণ কোড

#include<iostream>
using namespace std;
class B {
   public:
      virtual void s() {
         cout<<" In Base \n";
      }
};
class D: public B {
   public:
      void s() {
         cout<<"In Derived \n";
      }
};
int main(void) {
   D d; // An object of class D
   B *b= &d; // A pointer of type B* pointing to d
   b->s(); // prints "D::s() called"
   return 0;
}
বলে

আউটপুট

In Derived

  1. C++ এ ব্যক্তিগত ও সুরক্ষিত সদস্য

  2. C++ এ ক্লাস এবং অবজেক্ট

  3. সি++-এ সিল এবং মেঝের ফাংশন

  4. C++ এ ফ্রেন্ড ক্লাস এবং ফাংশন