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

विध्वंसक को मैन्युअल रूप से कॉल करना कब एक वैध अभ्यास है?

2024-11-17 को प्रकाशित
ब्राउज़ करें:856

When is Manually Calling a Destructor a Legitimate Practice?

डिस्ट्रक्टर को मैन्युअल रूप से कॉल करना कब उचित है?

यह धारणा कि डिस्ट्रक्टर को मैन्युअल रूप से कॉल करना त्रुटिपूर्ण डिज़ाइन को इंगित करता है, अक्सर जोर दिया जाता है। हालाँकि, यह सवाल उठता है: क्या इस नियम के अपवाद हैं? विध्वंसक को स्पष्ट रूप से आह्वान करने के लिए:

1। नियंत्रित मेमोरी डीलोकेशन:

जब मेमोरी आवंटन और डीलोकेशन को ऑब्जेक्ट निर्माण और विनाश से स्वतंत्र रूप से प्रबंधित किया जाता है, तो मैन्युअल डिस्ट्रक्टर कॉल महत्वपूर्ण हो जाते हैं। ऐसे मामलों में, ऑब्जेक्ट का निर्माण मौजूदा मेमोरी बफर पर नया प्लेसमेंट के माध्यम से होता है, जबकि विनाश एक स्पष्ट विनाशक कॉल के माध्यम से होता है।

char बफर[sizeof(MyClass)]; { मायक्लास* पी = नया(बफर)मायक्लास; p->कुछ करो(); p->~MyClass(); }

2. विशिष्ट मेमोरी एलोकेटर:

char buffer[sizeof(MyClass)];

{
     MyClass* p = new(buffer)MyClass;
     p->dosomething();
     p->~MyClass();
}
नवीनतम ट्यूटोरियल अधिक>

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

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

Copyright© 2022 湘ICP备2022001581号-3