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
Libérer: 2024-12-10 15:22:12
original
411 Les gens l'ont consulté

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.
};
Copier après la connexion

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.
};
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal