Поделиться через


Подробные описатели типов тщательно

Сложный спецификатор типа является именем типа, либо поставить class, struct, enum, или union ключевое слово.

class identifier
struct identifier
enum identifier
union identifier

Заметки

Сложный спецификатор типа используется для выделения или Показать имя типа, которое скрыто объявлением переменной с тем же именем в той же области.

Следующий оператор объявляет Window идентификатор имени класса.Этот синтаксис используется для прямого объявления классов.Дополнительные сведения об именах классов см. Имена классов.

class Window;

Если имя объявляется с помощью Объединение ключевое слово, он должен также быть определены с помощью Объединение ключевое слово.Имена, определенные с помощью класса ключевое слово может быть объявлен с помощью struct ключевое слово (и наоборот).Таким образом в следующих примерах кода, являются допустимыми:

Пример

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

Тем не менее, не допускаются следующие примеры:

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

См. также

Ссылки

Описатели типа C++