匿名クラス型

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

匿名クラスには、特定の制限が適用されます (無名共用体の詳細については、「共用体」を参照してください)。 匿名クラスの制限は次のとおりです。

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

  • 型チェックが省略記号を使用して無効化されていない限り、関数に引数として渡すことはできません。

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

参照

関連項目

クラス型の定義