Qu'est-ce qu'un smart pointer et quand doit-on l'utiliser ?
Bonjour à tous ! J'ai récemment commencé à étudier le C++ et je rencontre constamment des problèmes avec la gestion de la mémoire. Les fuites de mémoire et les dangling pointers me font particulièrement peur. Par exemple, j'écris souvent ce genre de code :\n\n```cpp\nclass MyClass {\npublic:\n int* data;\n MyClass() { \n data = new int(42); \n }\n ~MyClass() { \n delete data; \n }\n};\n\nvoid example() {\n MyClass* obj = new MyClass();\n // ... du code qui peut lancer une exception\n delete obj;\n}\n```\n\nLe problème est que si une exception se produit entre `new` et `delete`, ou si j'oublie d'appeler `delete`, la mémoire fuit. Et si quelqu'un supprime l'objet trop tôt alors que je continue à l'utiliser, le programme plante.\n\nJ'ai entendu dire qu'en C++11, il existe des « smart pointers » qui devraient résoudre ces problèmes.
No answers yet.
Connectez-vous pour laisser une réponse