ঘোষনাঃ
সম্মানীত সদস্যবৃন্দ, আপনাদের অবগতির জন্য জানানো যাচ্ছে যে, এআই ব্যবহার করে প্রশ্নের উত্তর দেওয়ার কারণে সাইটের র‌্যাংক কমে গেছে। তাই এআই উত্তর আর অনুমোদন দেওয়া হবে না।
42 বার দেখা হয়েছে
"সি++" বিভাগে করেছেন

1 টি উত্তর

1 টি পছন্দ 0 জনের অপছন্দ
করেছেন
নির্বাচিত করেছেন
 
সর্বোত্তম উত্তর

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



  

 

কিভাবে কাজ করে:



 

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



 

উদাহরণ:



 



    #include

    using namespace std;

    class Animal {

    public:

        virtual void sound() {   // ভার্চুয়াল ফাংশন

            cout << "Animal sound" << endl;

        }

    };

    class Dog : public Animal {

    public:

        void sound() override {  // ওভাররাইড করা

            cout << "Bark" << endl;

        }

    };

    class Cat : public Animal {

    public:

        void sound() override {  // ওভাররাইড করা

            cout << "Meow" << endl;

        }

    };

    int main() {

        Animal* animal1 = new Dog();  // Animal pointer to Dog object

        Animal* animal2 = new Cat();  // Animal pointer to Cat object

        animal1->sound();  // Outputs "Bark"

        animal2->sound();  // Outputs "Meow"

        delete animal1;

        delete animal2;

        return 0;

    }

 



 

এখানে, `sound()` ফাংশনটি `Animal` ক্লাসে ভার্চুয়াল হিসেবে ডিফাইন করা হয়েছে। তারপর `Dog` এবং `Cat` ক্লাসে এই ফাংশনটি ওভাররাইড করা হয়েছে। যখন `Animal` পয়েন্টার ব্যবহার করে `Dog` বা `Cat` ক্লাসের অবজেক্ট কল করা হয়, তখন সঠিক ফাংশনটি কল হয় (যেমন, "Bark" অথবা "Meow")।



 

ভার্চুয়াল ফাংশনের উপকারিতা:



 

       
  • রানটাইম পলিমরফিজম অর্জন করা যায়।
  •    
  • একই ফাংশন একাধিক ক্লাসে ভিন্নভাবে কাজ করতে পারে।
  •    
  • একই প্যারেন্ট পয়েন্টার দ্বারা বিভিন্ন ডেরাইভড ক্লাসের অবজেক্টের ফাংশন অ্যাক্সেস করা যায়।
  •  

এরকম আরও কিছু প্রশ্ন

1 টি উত্তর

35,894 টি প্রশ্ন

35,170 টি উত্তর

1,735 টি মন্তব্য

3,735 জন সদস্য

Ask Answers সাইটে আপনাকে সুস্বাগতম! এখানে আপনি প্রশ্ন করতে পারবেন এবং অন্যদের প্রশ্নে উত্তর প্রদান করতে পারবেন ৷ আর অনলাইনে বিভিন্ন সমস্যার সমাধানের জন্য উন্মুক্ত তথ্যভাণ্ডার গড়ে তোলার কাজে অবদান রাখতে পারবেন ৷
11 জন অনলাইনে আছেন
0 জন সদস্য, 11 জন অতিথি
আজকে ভিজিট : 16656
গতকাল ভিজিট : 17074
সর্বমোট ভিজিট : 51225678
এখানে প্রকাশিত সকল প্রশ্ন ও উত্তরের দায়ভার কেবল সংশ্লিষ্ট প্রশ্নকর্তা ও উত্তর দানকারীর৷ কোন প্রকার আইনি সমস্যা Ask Answers কর্তৃপক্ষ বহন করবে না৷
...