কম্পিউটার

C++ প্রোগ্রামে RTTI (রান-টাইম টাইপ ইনফরমেশন)


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

নিম্নলিখিত উদাহরণে, প্রথম কোড কাজ করবে না। এটি "ক্লাস ডিরাইভড*" (সোর্স টাইপ পলিমরফিক নয়) টাইপ করতে "ডাইনামিক_কাস্ট base_ptr (টাইপ বেস*) এর মতো একটি ত্রুটি তৈরি করবে"। এই ত্রুটিটি আসে কারণ এই উদাহরণে কোন ভার্চুয়াল ফাংশন নেই।

উদাহরণ কোড

#include<iostream>
using namespace std;
class Base { };
class Derived: public Base {};
int main() {
   Base *base_ptr = new Derived;
   Derived *derived_ptr = dynamic_cast<Derived*>(base_ptr);
   if(derived_ptr != NULL)
      cout<<"It is working";
   else
      cout<<"cannot cast Base* to Derived*";
   return 0;
}

এখন একটি ভার্চুয়াল পদ্ধতি যোগ করার পরে, এটি কাজ করবে।

উদাহরণ কোড

#include<iostream>
using namespace std;
class Base {
   virtual void function() {
      //empty function
   }
};
class Derived: public Base {};
int main() {
   Base *base_ptr = new Derived;
   Derived *derived_ptr = dynamic_cast<Derived*>(base_ptr);
   if(derived_ptr != NULL)
      cout<<"It is working";
   else
      cout<<"cannot cast Base* to Derived*";
   return 0;
}

আউটপুট

It is working

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

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

  3. একটি কাঠামোতে একজন শিক্ষার্থীর তথ্য সংরক্ষণ করার জন্য C++ প্রোগ্রাম

  4. পুনরাবৃত্তি ব্যবহার করে শক্তি গণনা করার জন্য C++ প্রোগ্রাম