Udostępnij za pośrednictwem


Rozwinięciem specyfikatorze typu

Specyfikator typu rozwinięciem jest wpisz nazwę poprzedzone albo class, struct, enum, lub union słowa kluczowego.

class identifier
struct identifier
enum identifier
union identifier

Uwagi

Specyfikator typu rozwinięciem jest używany do wyróżnienia lub aby odkryć ukryte deklaracja zmiennej o tej samej nazwie w tym samym zakresie nazwę typu.

Poniższa instrukcja deklaruje Window identyfikatora jako nazwę klasy.Ta składnia jest używana do przekazywania deklaracji klasy.Aby uzyskać więcej informacji dotyczących nazw klas, zobacz Nazwy klasy.

class Window;

Jeśli nazwa jest zadeklarowana za pomocą Unii słowa kluczowego, muszą również zdefiniowane, przy użyciu Unii słowa kluczowego.Nazwy, które są definiowane przy użyciu klasy słowa kluczowego mogą być deklarowane przy użyciu struct słowa kluczowego (i odwrotnie).Dlatego w następujących przykładach kodu są prawnych:

Przykład

// 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()
{
}

Jednak następujące przykłady są niedozwolone:

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

Zobacz też

Informacje

Specyfikatory typu C++