Ausgearbeitte Typspezifizierer

Ein ausgearbeiteter Typspezifizierer angegeben ist, einen Typnamen vorangestellt entweder die class, struct, enum, oder union Schlüsselwort.

class identifier
struct identifier
enum identifier
union identifier

Hinweise

Ein ausgearbeiteter Typspezifizierer angegeben werden entweder zur Betonung oder um einen Typnamen anzuzeigen, der durch die Deklaration einer Variablen mit demselben Namen im selben Bereich ausgeblendet ist.

Die folgende Anweisung deklariert die Window Bezeichner als Klassenname.Diese Syntax ist für die Vorwärtsdeklaration Klassen verwendet.Weitere Informationen über den Klassennamen finden Sie unter Klassennamen.

class Window;

Wenn ein Name deklariert ist, verwenden die Union Schlüsselwort, es muss auch mit definiert werden die Union Schlüsselwort.Mit definierten Namen der Klasse Schlüsselwort kann deklariert werden, mit der struct Schlüsselwort (und umgekehrt).Die folgenden Codebeispiele sind daher zulässig:

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 unzulässig:

// 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