मैं अपने प्रोग्राम में थोड़ा मेमोरी लीक खोजक बना रहा हूं, लेकिन नया ओवरलोडिंग और हटाए जाने का मेरा तरीका (और नया [] और हटाएं []) कुछ भी नहीं प्रतीत होता है।नया ओवरलोडिंग/हटाएं
void* operator new (unsigned int size, const char* filename, int line)
{
void* ptr = new void[size];
memleakfinder.AddTrack(ptr,size,filename,line);
return ptr;
}
जिस तरह से मैंने ओवरलोड किया new
ऊपर कोड स्निपेट में दिखाया गया है। मुझे लगता है कि यह ऑपरेटर के साथ शून्य है * लेकिन मुझे नहीं पता कि इसके बारे में क्या करना है।
"कुछ भी नहीं लगता है": आपका क्या मतलब है? आपने ऑपरेटर को अधिभारित किया है, लेकिन आपने डिफ़ॉल्ट ऑपरेटर को * ओवरराइड नहीं किया है, इसलिए "नया एक्स" डिफ़ॉल्ट रूप से नया कॉल करता है जबकि "नया (फ़ाइल नाम, रेखा) x" आपके अधिभारित संस्करण को कॉल करता है। –