Algorithme de sélection de pointeur intelligent
Lors du choix d'un type de pointeur intelligent approprié, tenez compte des critères suivants :
Propriété unique :
-
Utilisation std::unique_ptr: Fournit une propriété exclusive avec le suppresseur spécifié. Peut être utilisé dans les conteneurs STL.
Propriété partagée :
-
Utilisez std::shared_ptr et std::weak_ptr: Permet à plusieurs propriétaires de partager une ressource. Les pointeurs faibles observent les ressources sans affecter leur durée de vie.
Aucune propriété :
-
Utilisez des pointeurs ou des références bruts : Pour les non -posséder des références lorsque la ressource survit à l'objet référençant. Utilisez des pointeurs bruts pour la nullabilité ou la réinitialisation.
Considérations supplémentaires :
-
Boost::intrusive_ptr: Option légère pour les ressources avec référence existante comptée gestion.
-
Boost::scoped_array et std::unique_ptr: Versions de tableau des pointeurs étendus.
-
Obsolète : std::auto_ptr est obsolète en C 11.
Recommandation :
Dans la plupart des cas, std::unique_ptr devrait être le choix par défaut pour la propriété unique. std::shared_ptr et std::weak_ptr conviennent aux scénarios de propriété partagée. Les pointeurs et références bruts peuvent être utilisés pour les relations non propriétaires.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!