详细类型说明符是前面有 class、struct、enum 或 union 关键字的类型名称。
class identifier
struct identifier
enum identifier
union identifier
备注
详细类型说明符用于强调,或用于显示由相同范围中具有相同名称的变量的声明隐藏的类型名称。
以下语句将 Window 标识符声明为类名。 此语法用于类的前向声明。 有关类名称的详细信息,请参阅类名称。
class Window;
如果使用 union 关键字声明了某个名称,则还必须使用 union 关键字定义它。 使用 class 关键字定义的名称可使用 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];
};