¿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