क्या यह this
तर्क के साथ विनाशक में कुछ फ़ंक्शन कॉल करने के लिए मान्य है? फ़ंक्शन पॉइंटर को स्टोर नहीं करता है, लेकिन पूर्ण-कार्यात्मक ऑब्जेक्ट मानता है।विनाशक में "यह" का उपयोग
उत्तर
this
अभी भी विनाशक में मान्य है।
हालांकि, आपको यह ध्यान में रखना चाहिए कि आभासी फ़ंक्शन अब ठीक से काम नहीं कर सकते हैं क्योंकि आप ऑब्जेक्ट को नष्ट होने के बाद उम्मीद कर सकते हैं; उदाहरण देखें Never Call Virtual Functions during Construction or Destruction। अनिवार्य रूप से, वस्तु का गतिशील प्रकार संशोधित होता है क्योंकि प्रत्येक विनाशक पूरा होता है।
वे ** ** ठीक से काम करो। यह सिर्फ सही काम करने वाले कार्यों की परिभाषा अलग है। मेरा मतलब है - वे डिजाइन के रूप में काम करते हैं। – valdo
@ वाल्डो: उचित बिंदु! मैंने अपना जवाब संशोधित कर दिया है ... –
या फिर भी, समिति की "ठीक से काम करने" की परिभाषा अभ्यास में बहुत उपयोगी नहीं है। मुझे यकीन है कि कुछ उपयोग-मामले का आविष्कार करना संभव है जहां आप आधार सीटीओआर/डीटीआर में वर्चुअल फ़ंक्शंस के बेस क्लास संस्करणों को कॉल करना चाहते हैं, और समिति के पास इस तरह का कुछ दिमाग था। अन्यथा वे कार्यान्वयन को अधिक स्वतंत्रता देते थे, और सिर्फ इतना कहा था कि यह कॉल करने के लिए यूबी है। यह शायद अधिक कुशल होगा, क्योंकि कार्यान्वयन को प्रत्येक ड्यूटी पूर्ण होने के रूप में vtable पॉइंटर (या समतुल्य) को समायोजित करना नहीं होगा। जैसा कि है, हम उस चीज़ के लिए भुगतान करते हैं जिसका हम उपयोग नहीं करते हैं। –
एक शब्द में: हाँ।
डी`TOR
- 1. सी # में विनाशक का उपयोग?
- 2. PHP में विनाशक का उपयोग कब करें?
- 3. विनाशक के लिए यह enum क्या है?
- 4. विनाशक
- 5. विनाशक
- 6. विनाशक में अपवाद
- 7. बेस क्लास के विनाशक/निपटान का उपयोग करना?
- 8. MATLAB - 'स्पष्ट' का उपयोग करते समय ऑब्जेक्ट विनाशक चलाएं?
- 9. सिंगलटन विनाशक
- 10. विनाशक दुर्घटना
- 11. आभासी विनाशक विरासत में हैं?
- 12. विनाशक को निजी के रूप में उपयोग करने का क्या उपयोग है?
- 13. PHP में विनाशक अनुमानित है?
- 14. एक समारोह में '$ (यह)' का उपयोग
- 15. QWidget का विनाशक वर्चुअल क्यों नहीं है?
- 16. कन्स्ट्रक्टर में बनाने के लिए पैटर्न का नाम, विनाशक (सी ++)
- 17. सदस्य कन्स्ट्रक्टर और विनाशक का आदेश
- 18. "गतिशील अतुलनीय विनाशक" में "गतिशील" का क्या अर्थ है?
- 19. वीसी ++ में प्रतीक "वेक्टर हटाना विनाशक" का अर्थ क्या है?
- 20. एक विनाशक कॉल
- 21. PHP विनाशक व्यवहार
- 22. क्यूटी सी ++ विनाशक
- 23. इकाई परीक्षण विनाशक?
- 24. मेरे विनाशक में रिलीज एक्सेल ऑब्जेक्ट
- 25. मुझे विनाशक में नि: शुल्क और फ्री और नील का उपयोग क्यों करना चाहिए?
- 26. यदि कोई व्युत्पन्न वर्ग विनाशक अपवाद फेंकता है तो बेस क्लास विनाशक का क्या होता है
- 27. जीसीसी विनाशक व्यवहार
- 28. कन्स्ट्रक्टर और विनाशक
- 29. डाइलिब विनाशक को
- 30. क्या वीबी 6 कक्षा में विनाशक है?
में यह
this
का उपयोग करने के लिए पूरी तरह से मान्य है। ऑब्जेक्ट डीटीओआर की अंतिम पंक्ति तक पूरी तरह मान्य है। बेशक अगर डीटीओआर ऑब्जेक्ट के टुकड़े (उदाहरण के लिए पीआरटी इत्यादि से बाहर निकलता है) तो आप अपने आप को पैर में शूटिंग कर रहे हैं, लेकिन पूरी तरह से आपका कोड है, न कि cpler उत्पन्न करता है ... –