Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> C++

C++ प्रोग्राम में RTTI (रन-टाइम टाइप इंफॉर्मेशन)

इस खंड में, हम देखेंगे कि C++ में RTTI (रनटाइम टाइप इंफॉर्मेशन) क्या है। सी ++ में आरटीटीआई एक तंत्र है, जो रनटाइम के दौरान किसी ऑब्जेक्ट के डेटाटाइप के बारे में जानकारी को उजागर करता है। यह सुविधा तभी उपलब्ध हो सकती है जब कक्षा में कम से कम एक वर्चुअल फ़ंक्शन हो। यह किसी ऑब्जेक्ट के प्रकार को निर्धारित करने की अनुमति देता है जब प्रोग्राम निष्पादित हो रहा हो।

निम्नलिखित उदाहरण में, पहला कोड काम नहीं करेगा। यह 'क्लास व्युत्पन्न*' टाइप करने के लिए "डायनेमिक_कास्ट बेस_प्टर (बेस* प्रकार का) नहीं कर सकता" जैसी त्रुटि उत्पन्न करेगा (स्रोत प्रकार बहुरूपी नहीं है)"। यह त्रुटि इसलिए आती है क्योंकि इस उदाहरण में कोई वर्चुअल फ़ंक्शन नहीं है।

उदाहरण कोड

#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++ में स्थानीय वर्ग के रूप में जाना जाता है क्योंकि यह उस फ़ंक्शन के लिए स्थानीय होता है। स्थानीय वर्ग का एक उदाहरण इस प्रकार दिया गया है। #include<iostream> using namespace std; void func() {    class LocalClass {    }; } int main()

  1. एक संरचना में एक छात्र की जानकारी संग्रहीत करने के लिए C++ प्रोग्राम

    एक संरचना विभिन्न डेटा प्रकारों की वस्तुओं का एक संग्रह है। यह विभिन्न डेटा प्रकार के रिकॉर्ड के साथ जटिल डेटा संरचना बनाने में बहुत उपयोगी है। एक संरचना को स्ट्रक्चर कीवर्ड से परिभाषित किया जाता है। संरचना का एक उदाहरण इस प्रकार है। struct employee {    int empID;    char name[

  1. सी ++ प्रोग्राम रिकर्सन का उपयोग कर पावर की गणना करने के लिए

    किसी संख्या की घात की गणना x^y के रूप में की जा सकती है जहाँ x संख्या है और y उसकी शक्ति है। उदाहरण के लिए। Let’s say, x = 2 and y = 10 x^y =1024 Here, x^y is 2^10 रिकर्सन का उपयोग करके शक्ति खोजने का एक कार्यक्रम इस प्रकार है। उदाहरण #include <iostream> using namespace std; int FindPo