अनुभवी C++ डेवलपर्स `new` के उपयोग से बचने की सलाह क्यों देते हैं?
नमस्ते! मैं Java से C++ पर स्विच कर रहा हूँ और मुझे एक गलतफहमी हुई है। Java में हम ऑब्जेक्ट बनाने के लिए लगातार `new` का उपयोग करते हैं, यह एक मानक अभ्यास है। लेकिन फ़ोरम और लेख पढ़ते हुए, मैं देखता हूँ कि कई अनुभवी C++ डेवलपर्स '`new` के उपयोग को कम करने' की सलाह देते हैं। सच कहूँ तो, यह अजीब लगता है।
यहाँ एक उदाहरण है जो मैंने अपनी Java आदतों का पालन करते हुए लिखा है:
```cpp
#include
#include
class Person {
public:
Person(const std::string& name) : name_(name) {}
void greet() const { std::cout << "Hello, I'm " << name_ << std::endl; }
private:
std::string name_;
};
int main() {
Person* p = new Person("Alice");
p->greet();
// delete भूल गया? या कहीं कॉल करना है?
Person* p2 = new Person("Bob");
p2->greet();
// और अगर मैं p2 को किसी function में पास करना चाहूँ?
// मेमोरी को सही तरीके से कैसे मुक्त करें?
return 0;
}
```
समस्या यह है कि मैं नहीं समझता कि `new` वास्तव में कब आवश्यक है, और कब इसे स्टैक पर ऑब्जेक्ट बनाकर बदला जा सकता है। आखिरकार