共用方式為


複雜型別規範中

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