匿名類別類型
類別可以是匿名的,也就是說,類別可以不使用 identifier 宣告。 這種用法在您將類別名稱取代為 typedef 名稱時很實用,如下所示:
typedef struct
{
unsigned x;
unsigned y;
} POINT;
![]() |
---|
上述範例中的匿名類別用法對於保留與現有 C 程式碼的相容性而言很實用。在某些 C 程式碼中,使用 typedef 搭配匿名結構的情況相當普遍。 |
另外,當您想要讓類別成員的參考出現,就像該參考不是包含在另一個類別中一般時,匿名類別也相當實用,如下所示:
struct PTValue
{
POINT ptLoc;
union
{
int iValue;
long lValue;
};
};
PTValue ptv;
在上述程式碼中,iValue 可以使用物件成員選取運算子 (.) 存取,如下所示:
int i = ptv.iValue;
匿名類別會受到某些限制 (如需匿名等位的詳細資訊,請參閱等位)。匿名類別:
不能具有建構函式或解構函式。
不可做為引數傳遞至函式 (除非使用省略符號讓類型檢查失敗)。
不可做為函式的傳回值傳回。