匿名クラス型

クラスは匿名にできます。つまり 識別子 なしで宣言できます。これは 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;

匿名クラスは指定された制限が適用されます。(無名共用体についての詳細については共用体 を参照してください)。匿名クラス :

  • コンストラクターまたはデストラクターを持たせることはできません。

  • (型チェックが楕円を使用して無効化する) 関数に引数として渡すことはできません。

  • 関数からの戻り値として返すことはできません。

参照

関連項目

クラス型の定義