Contenu du cours
Pointeurs Intelligents C++
Pointeurs Intelligents C++
Création et Partage de Shared Pointers
L'approche recommandée
La manière recommandée de créer un pointeur partagé est d'utiliser la fonction std::make_shared
. Cette approche est généralement plus efficace et expressive par rapport à l'utilisation de new
. Elle alloue la mémoire pour l'objet et le bloc de contrôle (compteur de références) en une seule étape. Par exemple :
make_shared
// Create a shared pointer to an integer std::shared_ptr<int> p_int = std::make_shared<int>(42);
La ligne ci-dessus alloue un entier dynamique et initialise également un pointeur partagé vers celui-ci avec un compteur de références de un.
L'approche déconseillée
Vous pouvez également créer des pointeurs partagés en utilisant new
, mais cette méthode est déconseillée car elle n'est ni expressive ni efficace. La syntaxe de cette approche nécessite de passer l'objet au constructeur du pointeur partagé.
creating_shared_pointer
// Also creates a shared pointer to an integer std::shared_ptr<int> p_int(new int(42));
Allouer un entier dynamique puis le passer au constructeur du pointeur partagé. Cependant, le bloc de contrôle (compte de référence) sera initialisé à l'intérieur du constructeur.
Cela signifie que nous effectuons deux initialisations distinctes, ce qui est inefficace et une erreur pourrait être générée.
Passer des Pointeurs Partagés
Les pointeurs partagés sont conçus pour un partage sécurisé. Explorons quelques façons de les transmettre.
Merci pour vos commentaires !