सदस्य : लॉगिन |पंजीकरण |अपलोड ज्ञान
खोज
वर्चुअल विधि तालिका [संशोधन ]
वर्चुअल विधि तालिका (वीएमटी), वर्चुअल फ़ंक्शन टेबल, वर्चुअल कॉल टेबल, प्रेषण तालिका, vtable, या vftable गतिशील प्रेषण (या रन-टाइम विधि बाध्यकारी) का समर्थन करने के लिए प्रोग्रामिंग भाषा में उपयोग की जाने वाली एक तंत्र है।
जब भी कोई वर्ग वर्चुअल फ़ंक्शन (या विधि) को परिभाषित करता है, तो अधिकांश कंपाइलर्स कक्षा में एक छिपे हुए सदस्य चर को जोड़ते हैं जो वर्चुअल विधि तालिका (VMT या Vtable) नामक पॉइंटर्स (वर्चुअल) फ़ंक्शंस को इंगित करता है। इन पॉइंटर्स को उचित फ़ंक्शन कार्यान्वयन का आह्वान करने के लिए रनटाइम पर उपयोग किया जाता है, क्योंकि संकलन समय पर यह ज्ञात नहीं हो सकता है कि बेस फ़ंक्शन को कॉल किया जाना चाहिए या बेस क्लास से प्राप्त कक्षा द्वारा लागू व्युत्पन्न एक व्युत्पन्न है।
मान लीजिए कि एक कार्यक्रम में विरासत पदानुक्रम में कई वर्ग होते हैं: एक सुपरक्लास, बिल्ली, और दो उप-वर्ग, हाउसकैट और शेर। क्लास कैट स्पीच नामक वर्चुअल फ़ंक्शन को परिभाषित करता है, इसलिए इसके उप-वर्ग उचित कार्यान्वयन प्रदान कर सकते हैं (उदा। या तो मेयो या गर्जना)।
जब कार्यक्रम एक बिल्ली संदर्भ पर स्पीच फ़ंक्शन को कॉल करता है (जो बिल्ली के उदाहरण, या हाउसकैट या शेर का उदाहरण देख सकता है), कोड यह निर्धारित करने में सक्षम होना चाहिए कि कॉल के कार्यान्वयन को किस कार्यान्वयन के लिए भेजा जाना चाहिए। यह ऑब्जेक्ट की वास्तविक श्रेणी पर निर्भर करता है, न कि इसकी घोषित कक्षा बिल्ली। कक्षा को आम तौर पर स्थिर रूप से निर्धारित नहीं किया जा सकता है (यानी, संकलन समय पर), इसलिए संकलक यह तय नहीं कर सकता कि उस समय कौन सा फ़ंक्शन कॉल करना है। कॉल को इसके बजाय गतिशील रूप से सही कार्य (यानी, रन टाइम पर) भेजा जाना चाहिए।
ऐसे गतिशील प्रेषण को लागू करने के कई अलग-अलग तरीके हैं, लेकिन vtable (वर्चुअल टेबल) समाधान विशेष रूप से सी और संबंधित भाषाओं (जैसे डी और सी #) के बीच आम है। ऐसी भाषाएं जो कार्यान्वयन से वस्तुओं के प्रोग्रामेटिक इंटरफ़ेस को अलग करती हैं, जैसे विजुअल बेसिक और डेल्फी, भी वेटेबल दृष्टिकोण का उपयोग करती हैं, क्योंकि यह ऑब्जेक्ट्स को विधि पॉइंटर्स के एक अलग सेट का उपयोग करके एक अलग कार्यान्वयन का उपयोग करने की अनुमति देती है।
[विधि: कंप्यूटर प्रोग्रामिंग][C][डी: प्रोग्रामिंग भाषा][सी तीव्र: प्रोग्रामिंग भाषा][मूल दृश्य]
1.कार्यान्वयन
2.उदाहरण
3.एकाधिक विरासत और thunks
4.मंगलाचरण
5.दक्षता
6.विकल्पों के साथ तुलना
[अपलोड अधिक अंतर्वस्तु ]


सर्वाधिकार @2018 Lxjkh