Pourquoi les programmeurs C++ devraient-ils minimiser l'utilisation de `new` ?
Bonjour, collègues ! Je suis un développeur C++ débutant et j'essaie de comprendre les bonnes pratiques. Je lis partout qu'il faut éviter `new`, mais je ne comprends pas vraiment la raison. Dans les manuels, on écrit souvent : "allouez de la mémoire sur le tas avec `new`", puis les développeurs expérimentés disent : "ne faites pas ça". Cela me perturbe.
Voici un exemple simple : j'ai besoin de créer un objet qui vivra plus longtemps que la fonction actuelle. J'écris :
```cpp
class MyClass {
public:
MyClass() { std::cout << "Créé\n"; }
~MyClass() { std::cout << "Détruit\n"; }
void doWork() { /* ... */ }
};
void process() {
MyClass* obj = new MyClass();
obj->doWork();
// J'ai oublié delete ! Fuite de mémoire.
}
```
Problème : j'oublie souvent d'appeler `delete`, ce qui entraîne des fuites. J'ai aussi entendu dire que `new` peut lancer des exceptions.