मुझे कुछ ईवेंट हैंडलर कक्षाओं में समस्या है जो मैं लिखने की कोशिश कर रहा हूं। असल में, विचार वस्तुओं के प्रत्येक तार्किक समूह के लिए एक ईवेंट हैंडलर कक्षा है। ज्यादातर मामलों में, घटनाएं ऑब्जेक्ट्स और उनके हैंडलर के बीच होती हैं, लेकिन कुछ मामलों में ईवेंट हैंडलर ऑब्जेक्ट्स के बीच भी भेजे जाते हैं।कॉलिंग एक ही ऑब्जेक्ट पर दो पॉइंटर्स पर हटाएं
मैं कोड इस तरह कि घटनाओं एक ढेर पर रखा जाता है लिखा है (उपयोगकर्ता बनाया संरचना में के रूप में ढेर; घटनाओं के लिए खुद को आवंटित new
उपयोग कर रहे हैं) और delete
घ के बाद उनकी जानकारी पढ़ सकते हैं और उन पर कार्रवाई कर रहा है। यह मुझे कुछ समस्याएं दे रहा है क्योंकि एक मामले में, घटना तीन हैंडलरों की एक श्रृंखला के साथ भेजी जाती है। कहो, HandlerA
HandlerB
करने के लिए एक new Event
जो इसे पढ़ता है और करता है जो कुछ भी यह प्रदर्शन करने के लिए की जरूरत है, जिसके बाद यह delete
रों घटना सूचक और NULL
के लिए यह सेट जो यह ढेर पर रख देता है और इसे पढ़ता है, यह HandlerC
के लिए भेजने के लिए भेजता है,,। अब, हम HandlerB
पर वापस आते हैं और, ठीक है, यह भी delete
और NULL
ईवेंट के सूचक को चाहता है। लेकिन सूचक एक स्थानीय चर है, और यह अपवाद देकर, एक ही पते को दो बार हटा देता है।
आप इसके आसपास कैसे जाते हैं? क्या आपको उन फैंसी auto_ptr
एस (अभी भी शुरुआती शिक्षार्थी) में से एक का उपयोग करने की आवश्यकता है, या क्या मुझे यहां कुछ मौलिक याद आ रही है?
घटनाओं को ढेर पर आवंटित किया जाता है या उन्हें ढेर पर (आवंटित) आवंटित किया जाता है और एक स्टैक डेटास्ट्रक्चर में संग्रहीत किया जाता है? – Naveen
घटनाओं को ढेर पर आवंटित किया जाता है और एक ढेर संरचना में संग्रहीत किया जाता है। मुझे लगता है कि मुझे उपर्युक्त शब्द बदलना चाहिए ... –