Compteur de reference

711 mots 3 pages
Comptage de références
Nous avons vu que dès qu’un objet comporte une partie dynamique, il est nécessaire de procéder à des copies « profondes » plutôt qu’à des copies « superficielles », et ce aussi bien dans le constructeur de recopie que dans l’opérateur d’affectation. Cette façon de procéder conduit à ce que l’on pourrait nommer la sémantique naturelle de l’affectation et de la copie. Ainsi, avec : vect a(5), b(12) ; // a contient 5 éléments, b en contient 12 ..... a = b ; // a et b contiennent maintenant 12 éléments // mais, ils restent indépendants a[2] = 12 ; // la valeur de a[2] est modifiée, pas celle de b[2] Mais il est possible d’éviter la duplication de cette partie dynamique en faisant appel à la technique du « compteur de références ». Elle consiste à compter, en permanence, le nombre de références à un emplacement dynamique, c’est-àdire le nombre de pointeurs différents la désignant à un instant donné. Dans ces conditions, lorsqu’un objet est détruit, il suffit de n’en détruire la partie dynamique correspondante que si son compteur de références est nul, pour éviter les risques de libération multiple que nous avons souvent évoqués. Cette technique conduit cependant à une sémantique totalement différente de la copie et de l’affectation : vect a(5), b(12) ; // a contient 5 éléments, b en contient 12 ..... a = b ; // a et b désignent maintenant le même vecteur de 12 éléments // a[i] et b[i] désignent le même élément a[2] = 12 ; // la valeur de a[2] est modifiée ; il en va de même // de celle de b[2] puisqu’il s’agit du même élément Pour mettre en œuvre cette technique, deux points doivent être précisés.  L’emplacement du compteur de références : A priori, deux possibilités viennent à l’esprit : dans l’objet lui-même ou dans la partie dynamique associée à l’objet. La première solution n’est guère exploitable car elle obligerait à dupliquer ce compteur autant de fois qu’il y a d’objets pointant sur une même zone ; en outre, il serait très difficile

en relation

  • Exercices corrigés
    878 mots | 4 pages
  • Partie 1 Sequence 1
    3511 mots | 15 pages
  • svt tp2
    841 mots | 4 pages
  • Referentiel ifsi
    5750 mots | 23 pages
  • Int Grit Referentielle
    1634 mots | 7 pages
  • Le orscha china
    1855 mots | 8 pages
  • svt mecanique
    2485 mots | 10 pages
  • La référence éducative
    518 mots | 3 pages
  • Compte Rendu
    486 mots | 2 pages
  • Referentiel decesf
    6394 mots | 26 pages
  • Referentiel bep ss
    41473 mots | 166 pages
  • Procedure de referencement
    595 mots | 3 pages
  • Referenciel dees
    2130 mots | 9 pages
  • Compte Rendu
    363 mots | 2 pages
  • Referentiel
    3607 mots | 15 pages