Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> C++

C++11 में पांच का नियम क्या है?


पांच का नियम संसाधन प्रबंधन के लिए C++ में लागू होता है। संसाधन प्रबंधन क्लाइंट को प्रबंधित ऑब्जेक्ट के जीवनकाल के बारे में चिंता करने से मुक्त करता है, संभावित रूप से मेमोरी लीक और C ++ कोड में अन्य समस्याओं को समाप्त करता है। लेकिन यह प्रबंधन एक कीमत पर आता है। द बिग फाइव का नियम कहता है कि यदि आपको निम्नलिखित में से कोई एक कार्य लिखना है तो आपको उन सभी के लिए एक नीति बनानी होगी। यदि हमारे पास ऑब्जेक्ट फू है तो हमारे पास एक FooManager हो सकता है जो संसाधन Foo को संभालता है। FooManager को लागू करते समय, संभवतः आप सभी को निम्नलिखित कार्यों को लागू करने की आवश्यकता होगी -

  • विनाशक - जब यह प्रबंधक दायरे से बाहर हो जाता है, तो इसे अपने द्वारा प्रबंधित किए जा रहे सभी संसाधनों को मुक्त कर देना चाहिए।

  • असाइनमेंट ऑपरेटर - यदि आप एक प्रदान नहीं करते हैं तो संकलक एक डिफ़ॉल्ट असाइनमेंट ऑपरेटर बनाता है। डिफ़ॉल्ट असाइनमेंट ऑपरेशन एक सदस्य-वार कॉपी फ़ंक्शन है और एक उथली प्रतिलिपि करता है न कि एक गहरी प्रतिलिपि। इससे मेमोरी लीक, गलत असाइनमेंट जैसी समस्याएं हो सकती हैं।

  • कॉपी कंस्ट्रक्टर - कंपाइलर द्वारा आपूर्ति की गई कॉपी कंस्ट्रक्टर सभी FooManager की विशेषताओं की सदस्य-वार कॉपी करता है। यह असाइनमेंट ऑपरेटर के समान समस्याएँ प्रस्तुत करता है।

  • कंस्ट्रक्टर को स्थानांतरित करें - वस्तुओं की नकल करना महंगा हो सकता है क्योंकि इसमें अस्थायी वस्तुओं को बनाना, कॉपी करना और फिर नष्ट करना शामिल है। सी ++ 11 ने आर-वैल्यू संदर्भ की अवधारणा पेश की। एक आर-मान संदर्भ स्पष्ट रूप से एक आर-मान के लिए बाध्य किया जा सकता है। एक r-मान एक अनाम वस्तु है। एक अस्थायी वस्तु, दूसरे शब्दों में। इस आर-वैल्यू रेफरेंस का इस्तेमाल कंस्ट्रक्टर में पास किए गए आर-वैल्यू का रेफरेंस बनाने के लिए किया जा सकता है।

  • असाइनमेंट ऑपरेटर को स्थानांतरित करें - एक समय में केवल एक संसाधन होना उपयोगी है। इस संसाधन का स्वामित्व एक प्रबंधक से दूसरे प्रबंधक को हस्तांतरित किया जा सकता है। ऐसे मामलों में आप मूव असाइनमेंट ऑपरेटर प्रदान कर सकते हैं।

पांच के नियम के बारे में जानने के लिए यह एक बेहतरीन संसाधन है - https://www.feabhas.com/sites/default/files/2016-06/Rule%20of%20the%20Big%20Five.pdf।


  1. यूआरएल क्या है (यूनिफॉर्म रिसोर्स लोकेटर)?

    URL . के रूप में संक्षिप्त यूनिफ़ॉर्म रिसोर्स लोकेटर इंटरनेट पर किसी फ़ाइल के स्थान की पहचान करने का एक तरीका है। वे वही हैं जिनका उपयोग हम न केवल वेबसाइटों को खोलने के लिए करते हैं, बल्कि छवियों, वीडियो, सॉफ़्टवेयर प्रोग्राम और सर्वर पर होस्ट की जाने वाली अन्य प्रकार की फ़ाइलों को डाउनलोड करने के ल

  1. HTML पेज में हॉरिजॉन्टल रूल क्या है?

    टैग HTML में एक क्षैतिज नियम का प्रतिनिधित्व करता है। यह एक HTML पृष्ठ में सामग्री को अलग करता है। बस ध्यान रखें कि टैग में एंड टैग न हो। इसे HTML पेज में … टैग में जोड़ा जाता है। उदाहरण HTML पृष्ठ पर क्षैतिज नियम जोड़ने के लिए आप निम्न कोड को चलाने का प्रयास कर सकते हैं <!DOCTYPE html> &

  1. एक सिस्टम संसाधन क्या है? | विभिन्न प्रकार के सिस्टम संसाधन

    सिस्टम संसाधन: साधन संपन्न होना एक सार्वभौमिक रूप से आकर्षक विशेषता है, जो साधन संपन्न होने के बराबर नहीं है, वह है किसी के पास बहुत सारे संसाधन हैं, लेकिन किसी की क्षमता या किसी भी समय उसके लिए उपलब्ध दुर्लभ संसाधनों को अधिकतम करने की क्षमता है। यह न केवल वास्तविक दुनिया में बल्कि हार्डवेयर के साथ-