Freigeben über


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];
};

Siehe auch

Referenz

C++-Typspezifizierer