वैकल्पिक वर्चुअल फ़ंक्शन कॉल कार्यान्वयन
सी में, वर्चुअल तंत्र के माध्यम से गतिशील बाइंडिंग की सुविधा प्रदान की जाती है। जबकि मानक वर्चुअल फ़ंक्शन कॉल के अपेक्षित व्यवहार को निर्दिष्ट करता है, विशिष्ट कार्यान्वयन कंपाइलरों में भिन्न होता है। वर्चुअल टेबल और वर्चुअल पॉइंटर तंत्र को जी और माइक्रोसॉफ्ट विजुअल स्टूडियो जैसे कंपाइलरों द्वारा व्यापक रूप से नियोजित किया जाता है।
वैकल्पिक कार्यान्वयन
वर्चुअल टेबल दृष्टिकोण की व्यापकता के बावजूद, अन्य आभासी कार्यों के लिए गतिशील प्रेषण का कार्यान्वयन मौजूद है। एक ज्ञात विकल्प में वर्चुअल पॉइंटर के बजाय इन-ऑब्जेक्ट पॉइंटर का उपयोग शामिल है। यह रणनीति कई आधारों और सरणियों के साथ जटिल वस्तुओं के अधिक कुशल संचालन की अनुमति देती है, क्योंकि किसी सरणी में सभी ऑब्जेक्ट के लिए मैपिंग तालिका में केवल एक ही प्रविष्टि की आवश्यकता होती है।
ऑब्जेक्ट का आकार और आभासी कार्य
यह कथन कि वर्चुअल फ़ंक्शन वाले वर्ग का आकार हमेशा एक पॉइंटर (वर्चुअल पॉइंटर) के आकार के बराबर होगा, सार्वभौमिक रूप से सत्य नहीं है। वर्चुअल फ़ंक्शन प्रेषण का वास्तविक कार्यान्वयन ऑब्जेक्ट के आकार को प्रभावित कर सकता है। उदाहरण के लिए, ऊपर उल्लिखित वैकल्पिक कार्यान्वयन में, इन-ऑब्जेक्ट पॉइंटर के लिए आवश्यक अतिरिक्त भंडारण के कारण वर्चुअल फ़ंक्शन वाले ऑब्जेक्ट का आकार पॉइंटर के आकार से अधिक हो सकता है।
की सीमाएं वर्चुअल टेबल्स
हालाँकि वर्चुअल टेबल्स गतिशील प्रेषण के लिए एक सामान्य समाधान हैं, लेकिन उनकी सीमाएँ भी हैं। उदाहरण के लिए, उनके उपयोग के परिणामस्वरूप बड़े vtables और धीमी गति से ऑब्जेक्ट आरंभीकरण हो सकता है, विशेष रूप से कई आधारों के साथ जटिल मिश्रित वस्तुओं के लिए। यह परिणाम इस आवश्यकता से उत्पन्न होता है कि किसी सबऑब्जेक्ट का रन-टाइम प्रकार हमेशा सही होना चाहिए, यहां तक कि निर्माण के दौरान भी।
वैकल्पिक डेटा संरचनाएं
इन पर काबू पाने के लिए एक दृष्टिकोण सीमाओं में मेटा-डेटा संग्रहीत करने के लिए वैकल्पिक डेटा संरचनाओं को नियोजित करना शामिल है। उदाहरण के लिए, जूडी सरणियों का उपयोग ऑब्जेक्ट पते और उनके संबंधित मेटा-डेटा के बीच अत्यधिक कुशल मैपिंग बनाने के लिए किया गया है। यह दृष्टिकोण तेज़ लुकअप और मामूली भंडारण आवश्यकताएं प्रदान करता है।
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3