* Agence Wordpress Angers
Agence Wordpress Angers
Article:
En général, un pointeur intelligent forme un type abstrait de données qui ane le comportement d'un pointeur en y adjoignant des fonctionnalités telles que la libération automatique de la mémoire allouée ou la vérification des bornes. Dans les langages utilisant les pointeurs, la gestion manuelle de la mémoire est une source commune de bugs, en particulier de fuites de mémoire ou de plantages. Les pointeurs intelligents restreignent ce risque en rendant automatique la libération des ressources : quand le dernier pointeur vers un objet est détruit, par exemple parce qu'il sort de portée, l'objet pointé est démoli conjointement. Cela peut être implémenté par exemple avec le décompte de références. l'utilisation d'un ramasse-miette admet de se passer de pointeurs intelligents. En C++, les pointeurs intelligents sont adaptés à l'aide de templates qui imitent le comportement des pointeurs grâce à la surcharge des opérateurs, tout en procurant des algorithmes de gestion mémoire. Le rôle des pointeurs intelligents est de décrire au programmeur comment administrer les objets réintégrés par une fonction. Les unique_ptr forcent la propriété unique d'un objet en mémoire. Il est cependant possible de transférer cette propriété. Lorsque l'objet possédant l'unique_ptr devient hors de portée, l'objet pointé est également détruit. Les shared_ptr prennent en compte le comptage de références, ce qui permet de partager l'objet pointé entre plusieurs objets sans se soucier de comment libérer sa mémoire. Lorsque le dernier objet possédant la référence est également détruit, l'objet pointé est également détruit. Les weak_ptr offrent les mêmes propriétés que les shared_ptr, sauf qu'en plus ils s'intéressent au ème des références circulaires Pour un programme informatique, la portabilité éclaircit sa capacité à pouvoir être adapté plus ou moins facilement en vue de de fonctionner dans différents environnements d'exécution. Les différences peuvent porter sur l'environnement matériel (processeur) comme sur l'environnement logiciel (système d'exploitation). La différence d'environnement est discernable sur une combinaison des deux éléments. Tel est le cas dans les domaines de l'informatique embarquée, des super calculateurs ou des machines virtuelles. l'action d'échanger un programme pour qu'il puisse s'exécuter sur un autre environnement est baptisée portage. La notion d'environnement d'exécution définit l'ensemble (physique ou logiciel) qui accomplira les instructions du programme. Cet environnement peut présenter différents aspects suivant le langage de programmation utilisé ou le type de programme. Le niveau de portabilité d'un programme se traduit par le fait qu'il se sert du plus petit dénominateur commun à plusieurs environnements. De ce fait, si une bibliothèque logicielle est présente sur plusieurs environnements et que ce programme ne fait qu'utiliser cette dernière et non certaines fonctions propres à un environnement particulier, on dit alors que ce programme est portable partout où cette bibliothèque est disponible.