共用方式為


複雜的類型規範

複雜的類型指定名稱是一個類型名稱,其前方會出現 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];
};

請參閱

參考

C++ 類型規範