Avatar ·

¿Por qué los desarrolladores experimentados de C++ recomiendan evitar el uso de `new`?

¡Hola! Estoy migrando de Java a C++ y tengo un malentendido. En Java usamos constantemente `new` para crear objetos, es una práctica estándar. Pero al leer foros y artículos, veo que muchos desarrolladores experimentados de C++ recomiendan "minimizar el uso de `new`". Honestamente, suena extraño. Aquí hay un ejemplo que escribí, siguiendo mis hábitos de 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(); // ¿Olvidé delete? ¿O tengo que llamarlo en algún lado? Person* p2 = new Person("Bob"); p2->greet(); // ¿Y si quiero pasar p2 a una función? // ¿Cómo liberar memoria correctamente? return 0; } ``` El problema es que no entiendo cuándo `new` es realmente necesario y cuándo se puede reemplazar con la creación