मैं सी ++ में एक कचरा कलेक्टर बनाने की कोशिश कर रहा हूं, मैंने इसे अपने सभी को बेस क्लास के रूप में डिजाइन किया है, जिसे कचरा कंडीडेट कहा जाता है, जिसमें एक स्थिर वेक्टर होता है जिसमें कचरे के लिए पॉइंटर्स होते हैं। प्रत्येक कचरे के साथ कंडिडेट करें कलेक्टर इंस्टेंस पुशिंग वेक्टर पर "यह"।कचरा कलेक्टर सी ++
फिर स्थिर कार्यकर्ता स्थिर वेक्टर में सभी पॉइंटर्स आता है और हटा देता है।
हटाने समारोह के बहुत शुरुआत में (प्रथम सूचक पर हटाना) मैं अमान्य सूचक पर इस्तेमाल किया गया था को नष्ट करते हुए कहा कोई त्रुटि मिलती है ...
इस स्थिर/गतिशील बंधन के साथ क्या करना है? मेरा मतलब है: क्या डिलीट ऑपरेटर अपेक्षित कार्य करने में असमर्थ है क्योंकि मैं "पिता" वर्ग पर हटाना चाहता हूं और वास्तव में यह एक बच्चा है?
वर्चुअल विनाशकों को बनाने के लिए इसे टालने का एक तरीका हो सकता है? (या वर्चुअल डिलीट फ़ंक्शन)?
या क्या मैंने पूरी तरह से कुछ याद किया?
ps: परीक्षण के लिए उपयोग की जाने वाली सभी वस्तुओं को गतिशील रूप से बनाया गया।
क्या आपने अपने 'कचरा कैंडीडेट' कक्षा में डीटीओ वर्चुअल बनाया था? –
नहीं, इसमें स्थैतिक/गतिशील बाध्यकारी से कोई लेना देना नहीं है। –
यह केवल एक समस्या होगी यदि विनाशक 'आभासी' नहीं है। लेकिन किसी भी कोड को देखे बिना कहना मुश्किल है। क्या आप एक [एसएससीसीई] (http://sscce.org/) के साथ आ सकते हैं? –