Avatar ·

C++ प्रोग्रामर्स को `new` का उपयोग क्यों कम करना चाहिए?

नमस्ते साथियों! मैं एक शुरुआती C++ डेवलपर हूँ और बेस्ट प्रैक्टिसेज़ को समझने की कोशिश कर रहा हूँ। हर जगह पढ़ता हूँ कि `new` से बचना चाहिए, लेकिन कारण पूरी तरह समझ नहीं आता। ट्यूटोरियल्स में अक्सर लिखा होता है: "`new` के ज़रिए हीप में मेमोरी आवंटित करें", और फिर अनुभवी डेवलपर्स कहते हैं: "ऐसा मत करो"। यह मुझे भ्रमित करता है। यहाँ एक सरल उदाहरण है: मुझे एक ऐसा ऑब्जेक्ट बनाना है जो वर्तमान फ़ंक्शन से अधिक समय तक जीवित रहे। मैं लिखता हूँ: ```cpp class MyClass { public: MyClass() { std::cout << "बनाया गया\n"; } ~MyClass() { std::cout << "नष्ट किया गया\n"; } void doWork() { /* ... */ } }; void process() { MyClass* obj = new MyClass(); obj->doWork(); // delete भूल गया! मेमोरी लीक। } ``` समस्या: मैं अक्सर `delete` कॉल करना भूल जाता हूँ, और इससे मेमोरी लीक होती है। मैंने यह भी सुना है कि `new` एक्सेप्शन फेंक सकता है, और अगर कंस्ट्रक्टर में कुछ गलत हो जाए, तो मेमोरी भी लीक हो जाएगी। लेकिन फिर ऐसे ऑब्जेक्ट कैसे बनाएँ जो फ़ंक्शन के स्कोप के बाहर मौजूद रहने चाहिए? ग्लोबल वेरिएबल का उपयोग करें?