Pourquoi les développeurs C++ expérimentés conseillent-ils d'éviter l'utilisation de `new` ?
Bonjour ! Je passe de Java à C++ et j'ai un malentendu. En Java, nous utilisons constamment `new` pour créer des objets, c'est une pratique standard. Mais en lisant des forums et des articles, je vois que de nombreux développeurs C++ expérimentés conseillent de « minimiser l'utilisation de `new` ». Honnêtement, cela semble étrange.
Voici un exemple que j'ai écrit en suivant mes habitudes 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();
// J'ai oublié delete ? Ou faut-il l'appeler quelque part ?
Person* p2 = new Person("Bob");
p2->greet();
// Et si je veux passer p2 à une fonction ?
// Comment libérer la mémoire correctement ?
return 0;
}
```
Le problème est que je ne comprends pas quand `new` est vraiment nécessaire et quand on peut le remplacer par une création