Outils d'utilisateurs

Outils du Site


references

Différences

Cette page vous donne les différences entre la révision choisie et la version actuelle de la page.

Lien vers cette vue

references [2016/08/30 13:05]
gbdivers
references [2018/08/19 16:23] (Version actuelle)
gbdivers
Ligne 134: Ligne 134:
 Dans ce code, l'objet initialement dans la variable ''i'' est dans un premier temps copie dans la variable ''j''de la fonction ''f'', puis le resultat est deplacer depuis la variable ''j'' de la fonction ''f'' vers la variable ''i'' de la fonction ''main''. Cela fait beaucoup de manipulation d'objets. Dans ce code, l'objet initialement dans la variable ''i'' est dans un premier temps copie dans la variable ''j''de la fonction ''f'', puis le resultat est deplacer depuis la variable ''j'' de la fonction ''f'' vers la variable ''i'' de la fonction ''main''. Cela fait beaucoup de manipulation d'objets.
  
-Les indirections sont un moyen d'acceder une variable a distance, sans devoir faire de copie ou de deplacement. Utiliser une indirection revient a utiliser indirectement une autre variable.+Les indirections sont un moyen d’accéder un objet, sans devoir faire de copie ou de deplacement. Travailler sur une indirection revient a travailler sur l'objet indirectement. Toute modification sur l'indirection sera visible dans la variable d'origine et vice-versa.
  
 Le code precedent peut etre modifie de la facon suivante : Le code precedent peut etre modifie de la facon suivante :
Ligne 287: Ligne 287:
 </code> </code>
  
-Certaines opérations sur certains types de collections peuvent invalider les itérateurs, et seule la documentation permet de savoir cela. En cas de doute, considérez que les utilisateurs sont invalides.+Certaines opérations peuvent invalider les itérateurs, et seule la documentation permet de savoir cela. En cas de doute, considérez que les itérateurs sont invalides.
  
-Mais en fait, ce problème de validité n'est pas spécifique aux itérateurs, mais a toutes les directions. Certains types d'indirection (comme les références ou les pointeurs intelligents) permettent d'avoir des garanties plus fortes si elles sont correctement utilisées, mais il faut toujours rester vigilants.+Mais en fait, ce problème de validité n'est pas spécifique aux itérateurs, mais a toutes les indirections. Certains types d'indirection (comme les références ou les pointeurs intelligents) permettent d'avoir des garanties plus fortes si elles sont correctement utilisées, mais il faut toujours rester vigilants.
  
 L’équivalent de ''std::end()'' pour les pointeurs est ''nullptr'' ("pointeur nul"), il est donc possible de tester un pointeur avec ''assert''. Mais, comme pour les itérateurs, un pointeur peut être invalide, mais ne pas être testable ("dangling pointer"). L’équivalent de ''std::end()'' pour les pointeurs est ''nullptr'' ("pointeur nul"), il est donc possible de tester un pointeur avec ''assert''. Mais, comme pour les itérateurs, un pointeur peut être invalide, mais ne pas être testable ("dangling pointer").
references.1472555100.txt.gz · Dernière modification: 2016/08/30 13:05 par gbdivers