匿名クラス型
クラスは匿名にできます。つまり 識別子 なしで宣言できます。これは 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;
匿名クラスは指定された制限が適用されます。(無名共用体についての詳細については共用体 を参照してください)。匿名クラス :
コンストラクターまたはデストラクターを持たせることはできません。
(型チェックが楕円を使用して無効化する) 関数に引数として渡すことはできません。
関数からの戻り値として返すことはできません。