阐述的类型说明符

详细的类型说明符是通过以下任一方法开头的类型名称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++类型说明符