मैं एक सी ++ शौकिया हूँ। मैं कुछ Win32 एपीआई कोड लिख रहा हूं और हैंडल और अजीब रूप से आवंटित ऑब्जेक्ट ऑब्जेक्ट्स हैं। तो मैं सोच रहा था - क्या कुछ रैपर वर्ग है जो संसाधन प्रबंधन को आसान बनाती है?सी ++ में किस रैपर क्लास को स्वचालित संसाधन प्रबंधन के लिए उपयोग करना चाहिए?
उदाहरण के लिए, जब मैं कुछ डेटा लोड करना चाहता हूं तो मैं CreateFile()
के साथ एक फ़ाइल खोलता हूं और HANDLE
प्राप्त करता हूं। जब मैं इसके साथ काम करता हूं, तो मुझे CloseHandle()
पर कॉल करना चाहिए। लेकिन किसी भी उचित जटिल लोडिंग फ़ंक्शन के लिए अपवादों का उल्लेख न करने के लिए दर्जनों संभावित निकास बिंदु होंगे।
तो यह बहुत अच्छा होगा अगर मैं किसी प्रकार की रैपर क्लास में हैंडल लपेट सकता हूं जो एक बार निष्पादन को छोड़ने के बाद स्वचालित रूप से CloseHandle()
पर कॉल करेगा। इससे भी बेहतर - यह कुछ संदर्भ गिनती कर सकता है ताकि मैं इसे अन्य कार्यों के अंदर और बाहर पास कर सकूं, और यह संसाधन केवल तभी छोड़ा जाएगा जब अंतिम संदर्भ शेष दायरा हो।
अवधारणा सरल है - लेकिन क्या मानक लाइब्रेरी में ऐसा कुछ है? मैं विजुअल स्टूडियो 2008 का उपयोग कर रहा हूं, और मैं बूस्ट या कुछ जैसे तृतीय पक्ष ढांचे को संलग्न नहीं करना चाहता हूं।
सबसे अच्छा विचार, आईएमएचओ। इन वर्गों को हैंडल गार्ड कहा जाता है ... – SadSido
कोड की प्रतिलिपि बनाई जा सकती है क्योंकि कोड कॉपी किया जा सकता है। Http://en.wikipedia.org/wiki/Resource_Acquisition_Is_Initialization – Kerido
@ केरिडो, शायद, शायद नहीं। यह आपके द्वारा लपेट रहे संसाधन के अर्थशास्त्र पर निर्भर करता है। मुझे लगता है संदेह का आधा लाभ देना उचित है और पोस्ट कोड मानना एक साधारण उदाहरण उदाहरण है। –