Avatar ·

لماذا ينصح مطورو 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` ضروريًا حقًا، ومتى يمكن استبداله بإنشاء