"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > पास-बाय-वैल्यू और पास-बाय-रवैल्यू संदर्भ को समझना: मुख्य अंतर और निहितार्थ

पास-बाय-वैल्यू और पास-बाय-रवैल्यू संदर्भ को समझना: मुख्य अंतर और निहितार्थ

2024-10-31 को प्रकाशित
ब्राउज़ करें:209

Understanding Pass-by-Value and Pass-by-Rvalue Reference: Key Differences and Implications

फ़ंक्शन पैरामीटर्स में पास-बाय-वैल्यू बनाम पास-बाय-रवैल्यू संदर्भ

एक फ़ंक्शन को परिभाषित करते समय जो एक तर्क लेता है विशिष्ट प्रकार, आपके पास दो प्राथमिक विकल्प हैं: पास-बाय-वैल्यू या पास-बाय-रवैल्यू संदर्भ। पास-बाय-वैल्यू तर्क की एक प्रति बनाता है, जबकि पास-बाय-रवैल्यू संदर्भ तर्क के लिए आरवैल्यू (अस्थायी) संदर्भ का उपयोग करता है, जिससे इसे फ़ंक्शन में ले जाया जा सकता है।

मुख्य अंतर

कॉपी करने और स्थानांतरित करने के बीच प्राथमिक अंतर के अलावा, विचार करने के लिए कई महत्वपूर्ण अंतर हैं:

  • स्वामित्व पर नियंत्रण: पास-बाय-वैल्यू यह मानता है कि फ़ंक्शन तर्क का स्वामित्व लेता है, प्रभावी ढंग से कॉल करने वाले से फ़ंक्शन पर नियंत्रण स्थानांतरित करता है। दूसरी ओर, पास-बाय-रवैल्यू संदर्भ, कॉल करने वाले के पास स्वामित्व छोड़ देता है।
  • कॉपी करने की स्पष्टता: पास-बाय-वैल्यू आंतरिक रूप से कॉपी करने की लागत को छुपाता है। पास-बाय-रवैल्यू संदर्भ के लिए std::move का उपयोग करके कॉलर द्वारा स्पष्ट प्रतिलिपि की आवश्यकता होती है, जिससे डेवलपर्स को अपने इरादों के बारे में स्पष्ट होने के लिए मजबूर होना पड़ता है। संदर्भ कुछ मामलों में एकल चाल कंस्ट्रक्टर कॉल की आवश्यकता को समाप्त कर देता है। हालाँकि, पास-बाय-वैल्यू और पास-बाय-रवैल्यू संदर्भ दोनों कंपाइलरों को प्रतियों/चालों को हटाने की अनुमति देते हैं।
  • इंटरफ़ेस निहितार्थ

पास के बीच विकल्प -बाय-वैल्यू और पास-बाय-रवैल्यू संदर्भ का फ़ंक्शन इंटरफ़ेस पर प्रभाव पड़ता है:

पास-बाय-वैल्यू:
  • इंगित करता है कि फ़ंक्शन तर्क का स्वामित्व लेता है

    कॉल करने वाले को तर्क के जीवनकाल को प्रबंधित करने से राहत देता है
    पास-बाय-रवैल्यू संदर्भ:
  • संकेत है कि कॉल करने वाला तर्क का नियंत्रण छोड़ देता है

    कॉलर और फ़ंक्शन के बीच स्वामित्व के स्पष्ट अलगाव को लागू करता है
    दक्षता संबंधी विचार

पास-बाय-वैल्यू और पास-बाय-रवैल्यू संदर्भ के बीच दक्षता अंतर तर्क प्रकार के शब्दार्थ पर निर्भर करता है:

बड़ी डेटा संरचनाएं:

यदि तर्क प्रकार में एक बड़ी डेटा संरचना होती है जिसे सस्ते में स्थानांतरित किया जा सकता है, तो पास-बाय-रवैल्यू संदर्भ दक्षता में काफी सुधार कर सकता है। इससे महंगी प्रतिलिपि बनाने से बचा जा सकता है।
  • छोटी डेटा संरचनाएं: न्यूनतम सामग्री वाली छोटी डेटा संरचनाओं के लिए, पास-बाय-वैल्यू और पास-बाय-रवैल्यू संदर्भ के बीच न्यूनतम दक्षता अंतर होता है।
विज्ञप्ति वक्तव्य यह लेख यहां पुनर्मुद्रित है: 1729689829 यदि कोई उल्लंघन है, तो कृपया इसे हटाने के लिए स्टडी_गोलंग@163.कॉम से संपर्क करें।
नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3