لماذا ينصح مطورو 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 إلى دالة؟
// كيف يتم تحرير الذاكرة بشكل صحيح؟
return 0;
}
```
المشكلة أنني لا أفهم متى يكون `new` ضروريًا حقًا، ومتى يمكن استبداله بإنشاء