Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Apprendre Application for Pointeurs Uniques | Pointeurs Uniques
Pointeurs Intelligents C++
course content

Contenu du cours

Pointeurs Intelligents C++

Pointeurs Intelligents C++

1. Introduction aux Pointeurs Intelligents
2. Pointeurs Uniques
3. Pointeurs Partagés
4. Pointeurs Faibles
5. Références
6. Sujets Avancés

book
Application for Pointeurs Uniques

Les pointeurs uniques offrent un moyen sûr d'initialiser la mémoire de tas limitée à la portée. Voici quelques scénarios dans lesquels les pointeurs uniques sont bien adaptés :

  • comme règle d'or, définissez tous les pointeurs comme des pointeurs uniques, sauf s'ils doivent être partagés. Cela garantit une empreinte mémoire globale plus faible de votre application, car les pointeurs uniques ne comptent pas les références ;

  • utilisez des pointeurs uniques lorsque vous traitez de la mémoire de tas qui doit être allouée lors de l'entrée dans une portée, et désallouée lors de la sortie de la portée. Par exemple, vous pouvez utiliser un pointeur unique pour créer un grand vecteur d'objets dynamiques temporaires à l'intérieur d'une fonction ;

  • vous pouvez également utiliser des pointeurs uniques pour gérer des ressources telles que des descripteurs de fichiers, des sockets et des connexions de base de données. Ils garantissent que la ressource pointée est libérée lorsque le pointeur sort de la portée, réduisant ainsi les risques de fuites de ressources ;

  • les pointeurs uniques sont également bien adaptés à la création de structures de données complexes comme des arbres ou des listes doublement chaînées. En imposant la propriété unique de chaque élément dans la structure, ils peuvent simplifier la gestion de la mémoire et du code.

Quand ne pas utiliser des pointeurs uniques

Cependant, il existe certains scénarios où les pointeurs uniques ne sont pas le meilleur choix. Voyons-en quelques-uns :

  • si votre programme nécessite que plusieurs pointeurs partagent la propriété d'une ressource, alors vous ne pouvez pas utiliser un pointeur unique ;

  • si vous souhaitez que plusieurs parties de votre programme accèdent à une ressource partagée, vous ne devriez pas utiliser un pointeur unique pour gérer cette ressource. Bien qu'il soit possible de transmettre le pointeur brut (d'un pointeur unique) à différentes parties de votre code, cela briserait le principe fondamental de la propriété unique et pourrait potentiellement entraîner des fuites/corruptions de mémoire ;

  • si vous travaillez avec du code hérité ou des packages tiers qui ne prennent pas en charge les pointeurs intelligents, vous devrez peut-être vous fier à des pointeurs bruts, ou à d'autres moyens de gérer la mémoire.

Le code suivant compile et s'exécute correctement. Analysez-le attentivement. L'utilisation d'un `unique_ptr` pour l'objet `Resource` est-elle la bonne décision ?

Le code suivant compile et s'exécute correctement. Analysez-le attentivement. L'utilisation d'un unique_ptr pour l'objet Resource est-elle la bonne décision ?

Sélectionnez la réponse correcte

Tout était clair ?

Comment pouvons-nous l'améliorer ?

Merci pour vos commentaires !

Section 2. Chapitre 3
We're sorry to hear that something went wrong. What happened?
some-alt