मेरे पास class A
इसके एक क्षेत्र के लिए ढेर स्मृति आवंटन का उपयोग है। क्लास ए को त्वरित किया जाता है और एक अन्य कक्षा में पॉइंटर फ़ील्ड के रूप में संग्रहीत किया जाता है ( class B
।
जब मुझे कक्षा बी की एक वस्तु के साथ किया जाता है, तो मैं कॉल delete
करता हूं, जो मुझे लगता है कि विध्वंसक को कॉल करता है ... लेकिन क्या यह कक्षा ए के विनाशकर्ता को भी बुलाता है?
संपादित करें:
उत्तरों से, मैं इसे लेता हूं (कृपया गलत होने पर संपादित करें):
delete
बी कॉल की एक उदाहरण बी :: ~ बी ();- जो कहता है
A::~A();
A::~A
स्पष्ट रूपdelete
से ए वस्तु के सभी ढेर-आवंटित सदस्य चर चाहिए ;- अंत में मेमोरी ब्लॉक स्टोरिंग ने कहा कि वर्ग बी का उदाहरण ढेर पर वापस आ गया है - जब नया प्रयोग किया गया था, तो उसने पहले हीप पर मेमोरी का एक ब्लॉक आवंटित किया था, फिर इसे शुरू करने के लिए बिल्डरों को आमंत्रित किया, अब सभी विध्वंसक के बाद वस्तु को अंतिम रूप देने के लिए आमंत्रित किया गया है ब्लॉक जहां ऑब्जेक्ट रहता है, उसे ढेर पर लौटाया जाता है।