मैं कुछ कॉलेजों के साथ बहस कर रहा था कि जब आप गतिशील रूप से आवंटित कक्षा में अपवाद फेंकते हैं तो क्या होता है। मुझे पता है कि मॉलोक को बुलाया जाता है, और फिर कक्षा के निर्माता। कन्स्ट्रक्टर कभी वापस नहीं आता है, तो मॉलोक के साथ क्या होता है?जब मैं अपवाद फेंकता हूं तो स्मृति जारी हो जाती है?
निम्नलिखित
class B
{
public:
B()
{
cout << "B::B()" << endl;
throw "B::exception";
}
~B()
{
cout << "B::~B()" << endl;
}
};
void main()
{
B *o = 0;
try
{
o = new B;
}
catch(const char *)
{
cout << "ouch!" << endl;
}
}
malloced स्मृति 'ओ', यह रिसाव करता है तो क्या होता है पर विचार करें? क्या सीआरटी कन्स्ट्रक्टर के अपवाद को पकड़ता है और स्मृति को निष्क्रिय करता है?
चीयर्स रिच
संक्षिप्त उत्तर: हां। विवरण के लिए Cătălin Pitiş उत्तर देखें। –