इस खंड में हम देखेंगे कि C++ में अर्ली बाइंडिंग क्या है और लेट बाइंडिंग क्या है। बाइंडिंग का अर्थ है पहचानकर्ताओं को पतों में बदलने की प्रक्रिया। प्रत्येक चर और कार्यों के लिए यह बंधन किया जाता है। कार्यों के लिए यह संकलक द्वारा सही फ़ंक्शन परिभाषा के साथ कॉल का मिलान कर रहा है। बाइंडिंग या तो कंपाइलटाइम पर या रनटाइम पर की जाती है।
अर्ली बाइंडिंग
यह संकलन समय बहुरूपता है। यहां यह सीधे एक पते को फ़ंक्शन कॉल से जोड़ता है। फंक्शन ओवरलोडिंग के लिए यह अर्ली बाइंडिंग का एक उदाहरण है।
उदाहरण
#include<iostream> using namespace std; class Base { public: void display() { cout<<" In Base class" <<endl; } }; class Derived: public Base { public: void display() { cout<<"In Derived class" << endl; } }; int main(void) { Base *base_pointer = new Derived; base_pointer->display(); return 0; }
आउटपुट
In Base class
देर से बाध्यकारी
यह रन टाइम बहुरूपता है। इस प्रकार के बंधन में संकलक कोड जोड़ता है जो रनटाइम पर ऑब्जेक्ट प्रकार की पहचान करता है और फिर कॉल को सही फ़ंक्शन परिभाषा के साथ मेल खाता है। यह वर्चुअल फ़ंक्शन का उपयोग करके प्राप्त किया जाता है।
उदाहरण
#include<iostream> using namespace std; class Base { public: virtual void display() { cout<<"In Base class" << endl; } }; class Derived: public Base { public: void display() { cout<<"In Derived class" <<endl; } }; int main() { Base *base_pointer = new Derived; base_pointer->display(); return 0; }
आउटपुट
In Derived class