Partager via


Correspondance d'argument et le ce pointeur

Les fonctions membres de classe sont gérées différemment, selon qu'elles sont déclarées comme static.Comme les fonctions non statique ont un argument implicite qui fournit le pointeur d' this , les fonctions statiques sont considérées comme se avoires un plus d'argument que les fonctions static ; sinon, elles sont déclarées identique.

Ces fonctions membres non statiques requièrent que la correspondance implicite du pointeur d' this le type d'objet via lequel la fonction est appelée, ou, pour les opérateurs surchargés, elles nécessitent que la première correspondance d'argument l'objet sur lequel l'opérateur est appliqué.(Pour plus d'informations sur les opérateurs surchargés, consultez l' opérateurs surchargés.)

Contrairement aux autres arguments dans les fonctions surchargées, aucun objet temporaire n'est envoyé dans et aucune conversion n'est tentée en essayant de pondérer l'argument du pointeur d' this .

Lorsque l'opérateur de sélection des membres d' – > est utilisé pour accéder à une fonction membre, l'argument de pointeur d' this a un type d' class-name* const.si les membres sont déclarés comme const ou volatile, les types sont const class-name* const et volatile class-name * const, respectivement.

L'opérateur member-selection d' . fonctionne exactement de la même façon, mais un opérateur implicit d' & (adresse) est préfixé avec le nom de l'objet.L'exemple de code suivant montre comment cela fonctionne :

// Expression encountered in code
obj.name

// How the compiler treats it
(&obj)->name

L'opérande gauche des opérateurs d' –>* et d' .* (pointeur vers membre) sont traités de la même façon que les opérateurs d' . et d' –> sélection des membres () par rapport à la correspondance d'argument.

Voir aussi

Référence

Correspondance d'argument