Polymorphic Functions in Compiler Design in Hindi - पॉलीमॉर्फिक फंक्शंस क्या हैं?


पॉलीमॉर्फिक फंक्शंस क्या हैं? (What are Polymorphic Functions?)

पॉलीमॉर्फिक फंक्शंस (Polymorphic Functions) वे फंक्शंस होते हैं जो अलग-अलग डेटा टाइप्स पर काम कर सकते हैं। ये कम्पाइलर डिज़ाइन में पॉलीमॉर्फिज़्म (Polymorphism) की अवधारणा को लागू करते हैं, जिससे एक ही फंक्शन को विभिन्न प्रकार के इनपुट्स के लिए उपयोग किया जा सकता है।

पॉलीमॉर्फिक फंक्शंस के प्रकार (Types of Polymorphic Functions)

प्रकारविवरण
ओवरलोडेड फंक्शंस (Overloaded Functions)एक ही नाम के साथ विभिन्न पैरामीटर लिस्ट वाले फंक्शंस होते हैं।
टेम्प्लेट फंक्शंस (Template Functions)ये जेनरिक फंक्शंस होते हैं, जो विभिन्न डेटा टाइप्स के लिए उपयोग किए जा सकते हैं।
वर्चुअल फंक्शंस (Virtual Functions)ये फंक्शंस रन-टाइम पॉलीमॉर्फिज़्म को लागू करते हैं और डायनामिक डिस्पैच का उपयोग करते हैं।

1. ओवरलोडेड फंक्शंस (Overloaded Functions)

फंक्शन ओवरलोडिंग में, एक ही नाम वाले फंक्शंस अलग-अलग पैरामीटर लिस्ट के साथ परिभाषित किए जाते हैं।

उदाहरण:

#include <iostream>
using namespace std;

void display(int a) {
    cout << "Integer: " << a << endl;
}

void display(double a) {
    cout << "Double: " << a << endl;
}

int main() {
    display(10);     // Integer वाले फंक्शन को कॉल करेगा
    display(5.5);    // Double वाले फंक्शन को कॉल करेगा
    return 0;
}

2. टेम्प्लेट फंक्शंस (Template Functions)

टेम्प्लेट फंक्शंस ऐसे फंक्शंस होते हैं जो विभिन्न डेटा टाइप्स के लिए काम कर सकते हैं।

उदाहरण:

#include <iostream>
using namespace std;

template <typename T>
T add(T a, T b) {
    return a + b;
}

int main() {
    cout << add(5, 3) << endl;    // Integer addition
    cout << add(5.5, 2.3) << endl; // Float addition
    return 0;
}

3. वर्चुअल फंक्शंस (Virtual Functions)

वर्चुअल फंक्शंस का उपयोग डायनामिक पॉलीमॉर्फिज़्म के लिए किया जाता है, जिससे एक ही फंक्शन को डिफरेंट क्लासेस में अलग-अलग तरीकों से परिभाषित किया जा सकता है।

उदाहरण:

#include <iostream>
using namespace std;

class Base {
public:
    virtual void show() {
        cout << "Base class function" << endl;
    }
};

class Derived : public Base {
public:
    void show() override {
        cout << "Derived class function" << endl;
    }
};

int main() {
    Base* b;
    Derived d;
    b = &d;
    b->show(); // Derived class function को कॉल करेगा
    return 0;
}

पॉलीमॉर्फिक फंक्शंस के लाभ (Advantages of Polymorphic Functions)

  • यह कोड रीयूज़ेबिलिटी को बढ़ाता है।
  • यह फ्लेक्सिबिलिटी और डायनामिक बिहेवियर प्रदान करता है।
  • यह ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग के प्रमुख सिद्धांतों में से एक है।

पॉलीमॉर्फिक फंक्शंस की सीमाएँ (Limitations of Polymorphic Functions)

  • ओवरलोडिंग के कारण कभी-कभी फंक्शन कॉल एम्बिग्युइटी उत्पन्न हो सकती है।
  • वर्चुअल फंक्शंस रन-टाइम परफॉर्मेंस को प्रभावित कर सकते हैं।

निष्कर्ष (Conclusion)

पॉलीमॉर्फिक फंक्शंस कम्पाइलर डिज़ाइन का एक महत्वपूर्ण हिस्सा हैं, जो कोड को अधिक रीयूजेबल और डायनामिक बनाते हैं। ओवरलोडिंग, टेम्प्लेट्स और वर्चुअल फंक्शंस का उपयोग विभिन्न परिस्थितियों में किया जाता है।

Related Post

Comments

Comments