Primärausdrücke
Primäre Ausdrücke sind die Bausteine für komplexere Ausdrücke. Sie können Literale, Namen und Namen sein, die vom Bereichsauflösungsoperator (::
) qualifiziert sind. Ein primärer Ausdruck kann jede der folgenden Formen haben:
primary-expression
literal
this
name
::
name
(
expression
)
A literal
ist ein konstanter primärer Ausdruck. Sein Typ hängt von der Form seiner Spezifikation ab. Weitere Informationen zum Angeben von Literalen finden Sie unter "Literale" .
Die this
Schlüsselwort (keyword) ist ein Zeiger auf eine Instanz der Klasse. Sie ist in nicht statischen Memberfunktionen verfügbar und verweist auf die Instanz der Klasse, von der die Funktion aufgerufen wurde. Die this
Schlüsselwort (keyword) kann nicht außerhalb des Textkörpers einer Klassenelementfunktion verwendet werden.
Weitere Informationen zum Zeigertyp this
finden Sie unter this
Zeiger.
Der Bereichsauflösungsoperator (::
) gefolgt von einem Namen ist ein primärer Ausdruck. Solche Namen müssen Namen von globaler Reichweite sein, nicht Membernamen. Die Deklaration des Namens bestimmt den Typ des Ausdrucks. Es handelt sich um einen l-Wert (d. h. auf der linken Seite eines Zuordnungsausdrucks), wenn der deklarierende Name ein l-Wert ist. Der Bereichsauflösungsoperator lässt zu, dass auf einen globalen Namen verwiesen wird, selbst wenn dieser Name im aktuellen Bereich ausgeblendet ist. Ein Beispiel für die Verwendung des Bereichsauflösungsoperators finden Sie unter Scope .
Ein in Klammern eingeschlossener Ausdruck ist ein primärer Ausdruck. Der Typ und wert sind identisch mit dem Typ und Wert des nicht analysierten Ausdrucks. Es handelt sich um einen l-Wert, wenn der nicht analysierte Ausdruck ein l-Wert ist.
Zu den Beispielen von primären Ausdrücken gehören:
100 // literal
'c' // literal
this // in a member function, a pointer to the class instance
::func // a global function
::operator + // a global operator function
::A::B // a global qualified name
( i + 1 ) // a parenthesized expression
Diese Beispiele gelten als Namen und als solche primäre Ausdrücke in verschiedenen Formen:
MyClass // an identifier
MyClass::f // a qualified name
operator = // an operator function name
operator char* // a conversion operator function name
~MyClass // a destructor name
A::B // a qualified name
A<int> // a template id
Siehe auch
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für