Le 14 septembre 2017, nous avons publié une version actualisée de notre Politique de confidentialité. En utilisant video2brain.com vous vous engagez à respecter ces documents mis à jour. Veuillez donc prendre quelques minutes pour les consulter.

C++ : Les pointeurs intelligents

Comprendre l'usage des pointeurs intelligents

TESTEZ LINKEDIN LEARNING GRATUITEMENT ET SANS ENGAGEMENT

Tester maintenant Afficher tous les abonnements
Découvrez l'intérêt d'utiliser les différents pointeurs intelligents de C++ 11, plutôt que les pointeurs élémentaires du langage.

Transcription

En C++, un pointeur intelligent est une classe template qui utilise les surcharges d'opérateurs pour proposer des fonctionnalités de pointeur, mais aussi des fonctionnalités supplémentaires qui permettent de sécuriser l'utilisation de la mémoire dans le programme. Un pointeur intelligent, c'est en fait une encapsulation du pointeur C standard mais il en protège les accès et permet d'assurer comme ça une cohérence de la mémoire. Prenons un exemple pour illustrer ça, une fonction f, qui retourne un pointeur de type T. La zone mémoire représentée par ce pointeur je ne sais pas si elle est statique, si elle a été allouée, et si je dois la libérer, si oui, comment je dois le faire, avec un delete, avec une fonction free, ou une fonction qui aurait été faite spécialement pour libérer cette ressource, je ne sais pas. J'ai aucun moyen de le savoir en voyant la fonction. Alors que si j'ai dans mon programme une fonction f qui retourne un unique_ptr, je sais tout de suite que ce unique_ptr est une utilisation exclusive de la ressource que je ne peux pas en faire la copie, et donc que je suis le seul à maîtriser la durée de vie de cette ressource, que je peux la libérer quand je veux en appelant reset ou transférer la propriété de cette ressource à une autre partie de mon programme, qui lui s'assurera de sa libération quand il n'en aura plus besoin. Je peux aussi avoir un pointeur partagé qui me permet entre plusieurs parties de mon programme de partager les accès à une ressource. Je n'ai pas à me soucier de la libération de cette ressource puisque le pointeur partagé va lui-même, lorsqu'il n'y aura plus de référence, libérer la ressource. Les pointeurs partagés peuvent être utilisés comme l'on veut, les copier comme on veut, contrairement aux pointeurs uniques. Donc c'est une autre option que vous avez avec les pointeurs intelligents. Tous ces pointeurs sont disponibles dans la librairie memory donc il faut absolument utiliser #include <memory pour pouvoir utiliser autant le pointeur unique que le pointeur partagé. Donc les pointeurs intelligents ont été introduits en C++11, un peu améliorés en C++14, ils fonctionnent vraiment avec les versions de compilateurs récents, que ce soit C++ sous Linux, Visual C++ sous Windows, ou llvm clang pour Mac. il y a quelques petites différences d'implémentation entre ces différentes versions, mais je les décrirai au fur et à mesure du cours. Une fois pris en main, en tout cas, les pointeurs intelligents sont faciles à utiliser et très puissants, ils vous feront gagner beaucoup de temps sur la mise au point de vos applications, et leur conception, et renforceront la fiabilité de vos applications.

C++ : Les pointeurs intelligents

Utilisez les pointeurs intelligents et gérez efficacement vos ressources et allocations de mémoire en C++. Choisissez le type de pointeur intelligent en fonction de vos besoins.

29 min (9 vidéos)
Aucun commentaire n´est disponible actuellement
 
Logiciel :
Spécial abonnés
Date de parution :24 oct. 2016

Votre formation est disponible en ligne avec option de téléchargement. Bonne nouvelle : vous ne devez pas choisir entre les deux. Dès que vous achetez une formation, vous disposez des deux options de consultation !

Le téléchargement vous permet de consulter la formation hors ligne et offre une interface plus conviviale. Si vous travaillez sur différents ordinateurs ou que vous ne voulez pas regarder la formation en une seule fois, connectez-vous sur cette page pour consulter en ligne les vidéos de la formation. Nous vous souhaitons un excellent apprentissage avec cette formation vidéo.

N'hésitez pas à nous contacter si vous avez des questions !