Maison >développement back-end >C++ >Que sont les qualificatifs de référence (& et &&) dans les fonctions membres C et comment affectent-ils les références d'objets ?

Que sont les qualificatifs de référence (& et &&) dans les fonctions membres C et comment affectent-ils les références d'objets ?

Linda Hamilton
Linda Hamiltonoriginal
2024-12-10 15:22:12454parcourir

What are Reference Qualifiers (& and &&) in C   Member Functions and How Do They Affect Object References?

Qualificateurs de référence dans les déclarations de fonctions membres

En C, une esperluette simple (&) et une esperluette double (&&) peuvent être utilisées comme qualificatifs de référence dans les déclarations de fonctions membres. Ces qualificatifs affectent le type du paramètre d'objet implicite pour les fonctions membres non statiques.

Esperluette unique (référence unique)

L'esperluette unique (&) indique que le La fonction membre peut être invoquée lorsque l'objet est une référence lvalue (c'est-à-dire qu'il fait référence à un objet existant). En d'autres termes, la fonction est appelée avec un objet qui est passé par référence.

L'exemple suivant démontre l'utilisation du qualificatif de référence unique :

class wrap {
public:
   operator obj() const & { ... } // Copy from me.
};

Ici, l'opérateur obj( ) la fonction peut être invoquée sur une référence d'objet telle que my_object.operator obj().

Comparaison avec No Esperluette

Si aucun qualificatif de référence n'est spécifié, le paramètre d'objet implicite est une référence lvalue par défaut. Par conséquent, la déclaration de fonction suivante est équivalente à celle ci-dessus :

class wrap {
public:
   operator obj() const { ... } // Copy from me.
};

Notes supplémentaires

  • La double esperluette (&&) est utilisée pour spécifier une Référence rvalue (c'est-à-dire qu'elle fait référence à un objet temporaire), qui est invoquée lorsque l'objet est sur le point d'être déplacé.
  • Les qualificatifs de référence aident dans gérer correctement les références lvalue et rvalue et peut optimiser les performances en évitant les copies inutiles.
  • Il est important d'utiliser les qualificatifs de référence corrects pour garantir que les fonctions membres sont invoquées correctement et efficacement.

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn