में अपवादों को पकड़ना निम्नलिखित उदाहरण संभावित स्मृति रिसाव छोड़ देता है क्योंकि विनाशक उस वस्तु के लिए नहीं चलता है जिस पर अपवाद को उसके कन्स्ट्रक्टर के दौरान संभाला जाता है। मैं इस मेमोरी रिसाव को कहां संभाल सकता हूं?कन्स्ट्रक्टर
#include <exception>
class MyClass {
public:
MyClass()
{
c = new char[5];
throw std::runtime_error("test");
}
~MyClass()
{
delete[] c;
}
private:
char *c;
};
int main()
{
try
{
MyClass Obj;
}
catch (std::runtime_error)
{
}
}
इस डाउनवोट के लिए क्या कॉल है? आरएआईआई इस बारे में जाने का सबसे अच्छा तरीका है, और अगर कोई अन्यथा गलत कहता है। अगर आप डाउनवोट के लिए ज़िम्मेदार महसूस करते हैं, तो हमें समझाने के लिए ज़िम्मेदार क्यों महसूस करें? और यदि आप नहीं कर सकते हैं और महसूस करते हैं * यह गलत है तो आप डाउनवॉटिंग के लिए पर्याप्त योग्य नहीं हैं, किसी और को ऐसा करने दें। –
यह समाधान C++ 11 संबंधित सामग्री के आधार पर है? – user103214
नहीं यह सी ++ 03 है। –