Freigeben über


Namen

identifier  qualified-name operator-function-name conversion-function-name ~ class-name template-identifier template name qualified-class-name :: template name

Hinweise

Jeder identifier, der deklariert wurde, ist ein name. Ein qualifizierter Name ist ein Name, der mit dem Bereichsauflösungsoperator erstellt wurde. Siehe Qualifizierte Namen.

Ein operator-function-name ist ein Name, der im Formular deklariert ist.

operator operator-name**(** argument1 [ , argument2] );

Weitere Informationen zur Deklaration von operator-function-name erhalten Sie unter Überladene Operatoren.

Ein conversion-function-name ist ein Name, der in der Form deklariert ist.

operator type-name**(** )

Hinweis

Sie können einen abgeleiteten Typnamen wie char * anstelle von type-name angeben, wenn Sie eine Konvertierungsfunktion deklarieren.

Konvertierungsfunktions stellen Konvertierungen in und aus benutzerdefinierten Typen bereit. Weitere Informationen über vom Benutzer bereitgestellte Konvertierungsfunktionen finden Sie unter Konvertierungen.

Ein Name, der als ~ Klassenname deklariert wird, wird als "Destruktor" für Objekte eines Klassentyps übernommen. Destruktoren führen in der Regel Bereinigungsvorgänge am Ende der Lebensdauer eines Objekts aus. Weitere Informationen zu Destruktoren finden Sie unter Destruktoren.

Außerdem gibt es verschiedene Formen von Namen für Vorlagentypen und Vorlagenfunktionen.

Vorlagenbezeichner enthalten den Vorlagenklassennamen gefolgt von spitzen Klammern, die die Vorlagenargumentliste einschließen. Je nachdem, wie die Vorlage deklariert wurde, enthält diese Typen und Ausdrücke. Beispiele für template-identifers sind:

A<int> // class A takes a type as a template argument
A<int, char> // class A takes two types as template arguments
A<4> // class A takes an int as a template argument
A<> // class A is a template with a default argument

Qualifizierte Namen von Vorlagenfunktionen enthalten möglicherweise das Vorlagenschlüsselwort. Das Vorlagenschlüsselwort ist in einem Namen nicht zulässig, es sei denn, der Bereichsauflösungsoperator, der ->-Operator, der . -Operator oder ein qualifizierter Name wurden vorangestellt. Es folgen Namen von Funktionen:

::template f<int> // f is a global template function
A::template g<100> //g is a template member function of class A

Entsprechend kann der Name einer Klassenvorlage mithilfe des Vorlagenschlüsselworts angegeben werden, wenn ihm die Bereichsauflösung oder der qualifizierte Name vorangestellt ist. Im Folgenden finden Sie Typnamen:

::template A<int> // equivalent to A<int>
Outer::template Inner<int> // equivalent to Outer::Inner<int>

Weitere Informationen zu Vorlagen finden Sie unter Vorlagen.

Siehe auch

Referenz

Primäre Ausdrücke