Freigeben über


Argument-Abgleichen und der dieser Zeiger

Klassenmember Funktionen werden unterschiedlich behandelt, je nachdem, ob sie als staticdeklariert werden.Da nicht statische Funktionen eine implizite Argument verfügen, das den this Zeiger, nicht statischen Funktionen worden ist, ein weiteres Argument als statische Funktionen aufweisen. Andernfalls werden sie genauso deklariert.

Diese nicht statische Memberfunktionen erfordern, dass die implizite this Zeiger an der Objekttyp, durch den die Funktion aufgerufen wurde oder für überladene Operatoren, dass die erste Argument an das Objekt benötigen, auf den der Operator angewendet wird.(Weitere Informationen über überladene Operatoren finden Sie unter Überladene Operatoren).

Im Gegensatz zu anderen Argumente in den überladenen Funktionen, werden keine temporären Objekte eingeführt und keine Konvertierungen werden, um das versucht beim this Zeiger - Argument übereinstimmt.

Wenn der – >-Member Auswahl Operator verwendet wird, um eine Memberfunktion zuzugreifen, hat das this Zeiger - Argument einen Typ class-name * const.Wenn der Member als const oder volatiledeklariert werden, sind die Typen const class-name* const und volatile class-name * const.

Der Operator ausgewählten Member . funktioniert genau die gleiche Weise, außer dass ein impliziter &-Operator (ADDRESS-von) wird dem Objektnamen vorangestellt.Im folgenden Beispiel wird gezeigt, wie dies funktioniert:

// Expression encountered in code
obj.name

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

An den linken Operanden der –>* und .* (Memberzeiger) Operatoren werden genauso wie die . und Member ( –> Auswahl) Operatoren in Bezug auf das Argument übereinstimmen behandelt.

Siehe auch

Referenz

Argument-Abgleichen