কম্পিউটার টিউটোরিয়াল

C++-এ ডেরাইভড ক্লাসে ভার্চুয়াল ফাংশন


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

যদি একটি ভার্চুয়াল ফাংশন বেস ক্লাসে একবার ডিক্লেয়ার করা হয়, তবে সেই বেস ক্লাস থেকে ডেরাইভড প্রতিটি ক্লাসে সেটি স্বয়ংক্রিয়ভাবে ভার্চুয়াল হয়ে যায়। তাই ডেরাইভড ক্লাসে রিডিফাইন করা ভার্চুয়াল বেস ক্লাস ফাংশন ডিক্লেয়ার করার সময় virtual কিওয়ার্ড ব্যবহার করা প্রয়োজন নেই।

উদাহরণ কোড
#include 
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; // ক্লাস D-এর একটি অবজেক্ট
    B *b = &d; // B* টাইপের একটি পয়েন্টার যা d-কে নির্দেশ করছে
    b->s(); // "D::s() called" প্রিন্ট করবে
    return 0;
}
আউটপুট
In Derived
  1. C++-এ নেস্টেড ক্লাস

  2. C++-এ লোকাল ক্লাস

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

  4. C++-এ ভেরিয়েবলের স্টোরেজ ক্লাস