Ausführliche Typspezifizierer
Ein ausgearbeiteter Typspezifizierer ist ein Typname, dem das Schlüsselwort class, struct, enum oder union vorangestellt ist.
class identifier
struct identifier
enum identifier
union identifier
Hinweise
Ein ausgearbeiteter Typspezifizierer wird entweder zur Betonung oder zum Anzeigen eines Typnamens verwendet, der durch die Deklaration einer Variablen mit dem gleichen Namen im selben Bereich ausgeblendet wird.
Die folgende Anweisung deklariert den Window-Bezeichner als Klassenname. Diese Syntax wird für die Vorwärtsdeklaration von Klassen verwendet. Weitere Informationen zu gültigen Nachrichtenklassennamen finden Sie unter Klassennamen.
class Window;
Wenn ein Name mit dem union-Schlüsselwort deklariert wird, muss er auch mit dem union-Schlüsselwort definiert werden. Namen, die mithilfe des class-Schlüsselworts definiert werden, können mithilfe des struct-Schlüsselworts deklariert werden (und umgekehrt). Daher sind die folgenden Codebeispiele gültig:
Beispiel
// elaborated_type_specifiers1.cpp
struct A; // Forward declaration of A.
class A // Define A.
{
public:
int i;
};
int main()
{
}
// elaborated_type_specifiers2.cpp
class A; // Forward declaration of A
struct A
{
private:
int i;
};
int main()
{
}
// elaborated_type_specifiers3.cpp
union A; // Forward declaration of A
union A
{
int i;
char ch[2];
};
int main()
{
}
Die folgenden Beispiele sind jedoch ungültig:
// elaborated_type_specifiers4.cpp
union A; // Forward declaration of A.
struct A
{ // C2011
int i;
};
// elaborated_type_specifiers5.cpp
union A; // Forward declaration of A.
class A
{ // C2011
public:
int i;
};
// elaborated_type_specifiers6.cpp
struct A; // Forward declaration of A.
union A
{ // C2011
int i;
char ch[2];
};