複雜型別規範中
複雜的型別規範必須加上任何一個型別名稱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];
};