Sdílet prostřednictvím


Anonymní typy třídy

Třídy mohou být anonymní, tedy mohou být deklarovány bez identifikátoru.Tato možnost je užitečná při nahrazení názvu třídy názvem typedef, stejně jako následující:

typedef struct
{
    unsigned x;
    unsigned y;
} POINT;

[!POZNÁMKA]

Použití anonymních tříd uvedené v předchozím příkladu je užitečné pro zachování kompatibility s existujícím kódem jazyka C.V některých kódech jazyka C převládá použití typedef ve spojení s anonymními strukturami.

Anonymní třídy jsou také užitečné, pokud chcete odkazovat člena třídy, jako by nebyl obsažen v samostatné třídě, jako v následujícím příkladu:

struct PTValue
{
    POINT ptLoc;
    union
    {
        int  iValue;
        long lValue;
    };
};

PTValue ptv;

V předchozím kódu lze k proměnné iValue přistupovat pomocí operátoru výběru členů objektu (.) takto:

int i = ptv.iValue;

Na anonymní třídy se vztahují jistá omezení. (Další informace o anonymních sjednoceních naleznete v tématu Sjednocení.) Anonymní třídy:

  • Nemohou mít konstruktor a destruktor.

  • Nelze je předat jako argumenty funkcím (pokud není zrušena kontrola typu pomocí operátoru tři tečky).

  • Nelze je vrátit jako návratové hodnoty funkcí.

Viz také

Referenční dokumentace

Definování typů třídy