मेरे पास बेस क्लास ए है और एक व्युत्पन्न कक्षा बी है:मेरा विनाशक कभी क्यों नहीं बुलाया जाता है?
class A
{
public:
virtual f();
};
class B : public A
{
public:
B()
{
p = new char [100];
}
~B()
{
delete [] p;
}
f();
private:
char *p;
};
किसी भी कारण से विनाशक को कभी नहीं कहा जाता है - क्यों? मैं इसे समझ नहीं पा रहा हूं।
हालांकि सभी को पहले से ही पता चला है कि समस्या क्या है (जैसा कि यह सी ++ में एक एफएक्यू है), मुझे अभी भी सुझाव है कि आपको कक्षा बी का उपयोग करने के तरीके को कोड दिखाना चाहिए (यदि आप इसे इस तरह उपयोग करते हैं: बी * पी = नया बी(); पी को हटाएं; और विनाशक कभी नहीं बुलाया जाता है, तो यह पूरी तरह से अलग समस्या होनी चाहिए।) –