কম্পিউটার

C++ এ বিশুদ্ধ ভার্চুয়াল ফাংশন এবং বিমূর্ত ক্লাস


একটি বিশুদ্ধ ভার্চুয়াল ফাংশন হল C++ এ একটি ভার্চুয়াল ফাংশন যার জন্য আমাদের কোনো ফাংশনের সংজ্ঞা লিখতে হবে না এবং শুধুমাত্র আমাদের এটি ঘোষণা করতে হবে। এটি ঘোষণায় 0 বরাদ্দ করে ঘোষণা করা হয়।

একটি বিমূর্ত শ্রেণী হল C++ এর একটি ক্লাস যার অন্তত একটি বিশুদ্ধ ভার্চুয়াল ফাংশন আছে।

  • বিমূর্ত শ্রেণীতে একটি বিশুদ্ধ ভার্চুয়াল ফাংশনের সাথে স্বাভাবিক ফাংশন এবং ভেরিয়েবল থাকতে পারে।

  • অ্যাবস্ট্রাক্ট ক্লাস ইনস্ট্যান্ট করা যাবে না, তবে অ্যাবস্ট্রাক্ট ক্লাস টাইপের পয়েন্টার এবং রেফারেন্স তৈরি করা যেতে পারে।

  • বিমূর্ত ক্লাসগুলি মূলত Upcasting এর জন্য ব্যবহৃত হয়, যাতে এর থেকে প্রাপ্ত ক্লাসগুলি এর ইন্টারফেস ব্যবহার করতে পারে।

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

  • আমরা বিমূর্ত শ্রেণীর বস্তু তৈরি করতে পারি না কারণ আমরা Vtable-এ একটি বিশুদ্ধ ভার্চুয়াল ফাংশনের জন্য একটি স্লট সংরক্ষণ করি, কিন্তু আমরা কোনো ঠিকানা রাখি না, তাই Vtable অসম্পূর্ণ থেকে যাবে।

উদাহরণ কোড

#include<iostream>
using namespace std;
class B {
   public:
      virtual void s() = 0; // Pure Virtual Function
};

class D:public B {
   public:
      void s() {
         cout << "Virtual Function in Derived class\n";
      }
};

int main() {
   B *b;
   D dobj;
   b = &dobj;
   b->s();
}

আউটপুট

Virtual Function in Derived class

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

  2. C# এ ভার্চুয়াল এবং বিমূর্ত ফাংশনের মধ্যে পার্থক্য কী?

  3. C# এ বিমূর্ত ক্লাস

  4. স্কালাতে বৈশিষ্ট্য এবং বিমূর্ত শ্রেণীর মধ্যে পার্থক্য।