मुझे कोड के साथ कई बार सामना करना पड़ता है जहां std :: vector के वर्ग सदस्य के std :: vector :: clear() को कन्स्ट्रक्टर और विनाशक में बुलाया जाता है।std :: vector :: clear() कन्स्ट्रक्टर और विनाशक में
मुझे नहीं क्यों यह आवश्यक है:
- निर्माता - प्रकार एसटीडी के वर्ग के सदस्य :: वेक्टर डिफ़ॉल्ट रूप से रिक्त है, तो कोई स्पष्ट कॉल करने के लिए की जरूरत है()।
- विनाशक - प्रकार std :: वेक्टर के वर्ग सदस्य को उस वस्तु के मानक विनाश के हिस्से के रूप में नष्ट कर दिया जाएगा। वेक्टर विनाश के हिस्से के रूप में सभी मूल्य ऑब्जेक्ट्स इसमें शामिल किया जाएगा (यदि यह आवंटित पॉइंटर्स को स्मृति में ढेर करता है, तो उन्हें "मैन्युअल रूप से हटाया जाना चाहिए"), इसलिए फिर स्पष्ट() को कॉल करने की आवश्यकता नहीं है।
क्या मुझे कुछ याद आती है?
अच्छा शब्द, 'वूडू प्रोग्रामिंग' :) – xtofl
शून्य पर पॉइंटर सेट करना वूडू नहीं है, यह डिबगिंग में काफी मदद करता है। आपको एक ही पॉइंटर को दो बार हटाने से रोकता है, लेकिन कोई भी ऐसा नहीं करता है - है ना? –
यदि कुछ भी है, तो आप जानना चाहते हैं कि आपने दो बार एक ही पॉइंटर हटा दिया है। –