Polymorphic Functions in Compiler Design in Hindi - पॉलीमॉर्फिक फंक्शंस क्या हैं?
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 Articles
Code Improving Transformations in Compiler Design in Hindi | कोड इंप्रूविंग ट्रांसफॉर्मेशन
कोड इंप्रूविंग ट्रांसफॉर्मेशन (Code Improving Transformation...
Read More →Introduction to Global Data Flow Analysis in Compiler Design in Hindi | ग्लोबल डेटा फ्लो एनालिसिस का परिचय
ग्लोबल डेटा फ्लो एनालिसिस (Global Data Flow Analysis) क्या ह...
Read More →Loop Optimization in Compiler Design in Hindi | लूप ऑप्टिमाइजेशन
लूप ऑप्टिमाइजेशन (Loop Optimization) क्या है? Compiler Design ...
Read More →Dead Code Elimination in Compiler Design in Hindi | डेड कोड एलिमिनेशन
डेड कोड एलिमिनेशन (Dead Code Elimination) क्या है? Compiler Des...
Read More →Loops in Flow Graphs in Compiler Design in Hindi | फ्लो ग्राफ्स में लूप्स
फ्लो ग्राफ में लूप्स (Loops in Flow Graphs) क्या होते हैं?...
Read More →